У меня есть действие икры, и я использовал NSTimer
, чтобы создать его, но я изменил его на SKAction, так что он остановится, когда сцена паузы:SpriteKit SKAction лаг паузы
let SpawnAction = SKAction.sequence([SKAction.waitForDuration(0.5), SKAction.runBlock(Spawn)])
self.runAction(SKAction.repeatActionForever(SpawnAction))
Теперь проблема отставание, которое существует на части кода, я думаю, так как это не сработает сразу после того, как сцена будет приостановлена.
Это код, я использую, чтобы сделать паузу/возобновлять игру:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
for touch in (touches as! Set<UITouch>) {
let location = touch.locationInNode(self)
let node = self.nodeAtPoint(location)
if (node.name == "Pause") {
PauseLabel.removeFromParent()
self.addChild(ResumeLabel)
self.runAction(SKAction.runBlock(self.pauseGame))
}
else if (node.name == "Resume") {
self.view!.paused = false
self.addChild(PauseLabel)
ResumeLabel.removeFromParent()
}
else {
//Other code...
}
}
}
func pauseGame() {
self.view!.paused = true
}
Я хотел бы кто-нибудь сказать мне, как правильно сделать паузу/возобновлять в SpriteKit игру, как и все методы, которые я получил из Интернета не работает должным образом для меня. Спасибо.
http://stackoverflow.com/questions/23381088/difference-between-paused-property-of-skscene-and-skview – ZeMoon
Спасибо! Я всегда думал, что «self.view.paused» - это метод использования в SpriteKit, но «self.paused», похоже, работает намного лучше. –