Арифметический оператор на отрицательных числах в Swift - PullRequest
0 голосов
/ 24 апреля 2019

Я изучаю некоторые игровые разработки со Swift, и поэтому я хочу знать, когда узел находится дальше по оси Z.Мой расчет:

if zPositionOfBowlingBall > -7 { 
  // Do something here
}

Так что, если позиция больше -7, то, например, -8, выполнить блок кода.Это никогда не вызывается.Я предполагаю, что так работает подписанный int.Если бы кто-то мог объяснить это, было бы действительно полезно понять и каков будет правильный синтаксис.

ОБНОВИТЬ полный код здесь

extension ViewController: ARSCNViewDelegate {
    func renderer(_ renderer: SCNSceneRenderer, didSimulatePhysicsAtTime time: TimeInterval) {
        bowlingBall.removeBowlingBallWhenZPositionIsReached()
    }
}

func removeBowlingBallWhenZPositionIsReached() {
        guard let bowlingBallNode = bowlingBallNode else {return}
        let bowlingBallPosition = bowlingBallNode.presentation.worldPosition
        let zPositionOfBowlingBall = Int(bowlingBallPosition.z)
        if zPositionOfBowlingBall > -7 {
            performFadeOutOnBowlingBallWith(duration: 2.0)
        }
    }

1 Ответ

3 голосов
/ 24 апреля 2019

-8 меньше -7, поэтому ваш код должен быть:

if zPositionOfBowlingBall < -7 { 
  // Do something here
}

, если вы хотите, чтобы значение было больше 7, независимо от знака, вы можете использовать абсолютное значение.

abs(<#value#>)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...