我有一个spawn动作,我正在使用NSTimer
来创建它,但是我将其更改为SKAction,以便在场景暂停时停止:
let SpawnAction = SKAction.sequence([SKAction.waitForDuration(0.5), SKAction.runBlock(Spawn)])
self.runAction(SKAction.repeatActionForever(SpawnAction))
现在问题是我认为代码的waitForDuration
部分存在滞后现象,因为它在场景取消暂停后无法正常工作。
这是我用来暂停/取消暂停游戏的代码:
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游戏的方法,因为我从互联网上下载的所有方法都不适合我。谢谢。
答案 0 :(得分:0)
我不确定这是否适合你。但是在我用来暂停的按钮的所选处理程序中的var selectRowProp = {
mode: "radio",
hideSelectColumn: true,
clickToSelect: true,
bgColor: "rgb(238, 193, 213)",
onSelect: onRowSelect
};
函数下:
我使用didMoveToView
以及使用self.gameState = .Pause
这些都会停止游戏视图,而且physicsworld会帮助阻止可能在你的精灵上运行的任何障碍。
希望这会对你有所帮助。