暂停我的游戏在 Swift SpriteKit 中不起作用
Pausing my game isn't working in Swift SpriteKit
关注了其他一些帖子,例如 this one,但出于某种原因,我的案例无法正常工作。
任何人都可以解释为什么或我做错了什么吗?
所以现在,我得到了一个 SKLabelNode,它在我的游戏一开始就附加在框架中,但 alpha = 0。这只表示 "PAUSED"。
这个想法是通过在按下暂停按钮时设置 alpha = 1 来显示它,并在再次按下时设置 alpha = 0 并且一切恢复正常。
我认为这比一遍又一遍地删除和重新附加相同的 Sprite/Label 更好。 (如果没有,请告诉我)
这是我的代码:
func showPauseModal() {
print("opening pause modal ", self.view!.paused)
if self.view!.paused {
self.pausedLabel.alpha = 0
self.unpauseGame()
}else{
self.pausedLabel.alpha = 1
self.pauseGame()
}
}
然后是 pauseGame() 和 unpauseGame() 函数
func pauseGame() {
let delay = SKAction.waitForDuration(0.5)
let block = SKAction.runBlock({
self.view!.paused = true
})
let sequence = SKAction.sequence([delay, block])
self.runAction(sequence)
}
func unpauseGame() {
let delay = SKAction.waitForDuration(0.5)
let block = SKAction.runBlock({
self.view!.paused = false
})
let sequence = SKAction.sequence([delay, block])
self.runAction(sequence)
}
因此,我第一次按下屏幕中的暂停按钮时,它暂停并添加了 PAUSED 标签。当我再次按下它时,暂停永远不会消失,标签也不会消失,尽管我正在检查它是否进入了 unpauseGame 函数。那怎么了?
提前致谢。
我不认为runAction 会在游戏暂停时执行。简单地尝试
func unpauseGame() {
self.view!.paused = false
}
关注了其他一些帖子,例如 this one,但出于某种原因,我的案例无法正常工作。
任何人都可以解释为什么或我做错了什么吗?
所以现在,我得到了一个 SKLabelNode,它在我的游戏一开始就附加在框架中,但 alpha = 0。这只表示 "PAUSED"。 这个想法是通过在按下暂停按钮时设置 alpha = 1 来显示它,并在再次按下时设置 alpha = 0 并且一切恢复正常。 我认为这比一遍又一遍地删除和重新附加相同的 Sprite/Label 更好。 (如果没有,请告诉我)
这是我的代码:
func showPauseModal() {
print("opening pause modal ", self.view!.paused)
if self.view!.paused {
self.pausedLabel.alpha = 0
self.unpauseGame()
}else{
self.pausedLabel.alpha = 1
self.pauseGame()
}
}
然后是 pauseGame() 和 unpauseGame() 函数
func pauseGame() {
let delay = SKAction.waitForDuration(0.5)
let block = SKAction.runBlock({
self.view!.paused = true
})
let sequence = SKAction.sequence([delay, block])
self.runAction(sequence)
}
func unpauseGame() {
let delay = SKAction.waitForDuration(0.5)
let block = SKAction.runBlock({
self.view!.paused = false
})
let sequence = SKAction.sequence([delay, block])
self.runAction(sequence)
}
因此,我第一次按下屏幕中的暂停按钮时,它暂停并添加了 PAUSED 标签。当我再次按下它时,暂停永远不会消失,标签也不会消失,尽管我正在检查它是否进入了 unpauseGame 函数。那怎么了?
提前致谢。
我不认为runAction 会在游戏暂停时执行。简单地尝试
func unpauseGame() {
self.view!.paused = false
}