我已经阅读了几篇关于在SpriteKit中暂停场景的问题/答案,但没有解决我遇到的问题。
我的游戏场景中有一个暂停按钮。 Z位置远高于场景中的任何其他SKSpriteNode。第一个问题是,有时需要2或3次点击来暂停场景,但主要问题是要恢复游戏,有时候只需轻轻一击就可以正常工作但有些时候点击它会提前2到3帧我有时甚至需要点击5次才能让游戏完全恢复。
下面是我用于暂停按钮的代码,它位于使用Swift 3的touchesMoved函数中。你能提供任何建议来改进这些代码并修复这个故障吗?谢谢你的帮助。
let nodeUserTapped = atPoint(pointOfTouch)
if nodeUserTapped.name == "PauseButton" {
if (self.isPaused == true) {
self.isPaused = false
physicsWorld.speed = 1
} else {
self.isPaused = true
physicsWorld.speed = 0
}
}
答案 0 :(得分:2)
通常您应该使用touchesBegan
简单地使用“按下按钮”纹理设置按钮的动画,然后将代码放在touchesEnded
中,以确保在用户释放按钮内部时将其运行。您在touchesMoved
中编写的代码仅在手指在屏幕上滑动至少一点时运行。