在swift

时间:2015-11-12 19:27:02

标签: swift if-statement sprite-kit game-physics statements

我目前正在使用以下代码来监控我的游戏状态:

override func update(currentTime: CFTimeInterval) {

    // Game over query //

    if car.physicsBody?.angularVelocity < 10  {carFly()}
    else {gameOver()}
}

这似乎运行良好,根本不对CPU征税(这是令人愉快的)。但是,函数gameOver()永远不会被调用一次......它会多次调用,这会导致生涩的过渡/奇怪的行为。

如何构建它以便它只调用一次gameOver()?

1 个答案:

答案 0 :(得分:1)

您可以添加Bool标志来控制这种情况,例如:

...
var isGameOver: Bool = false
...
override func update(currentTime: CFTimeInterval) {

    // Game over query //

    if car.physicsBody?.angularVelocity < 10  {
        carFly()
    } else {
        if isGameOver {
            return
        } else {
            isGameOver = true
            gameOver()
        }
    }
}