我目前正在使用以下代码来监控我的游戏状态:
override func update(currentTime: CFTimeInterval) {
// Game over query //
if car.physicsBody?.angularVelocity < 10 {carFly()}
else {gameOver()}
}
这似乎运行良好,根本不对CPU征税(这是令人愉快的)。但是,函数gameOver()永远不会被调用一次......它会多次调用,这会导致生涩的过渡/奇怪的行为。
如何构建它以便它只调用一次gameOver()?
答案 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()
}
}
}