在 swift 中覆盖 func 更新问题

override func update problems, in swift

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

override func update(currentTime: CFTimeInterval) {

    // Game over query //

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

这似乎运作良好并且根本不会对 CPU 征税(这很令人高兴)。然而,函数 gameOver() 绝不会只被调用一次......它会调用多次,这会导致不稳定的转换/奇怪的行为。

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

您可以添加 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()
        }
    }
}