暂停我的游戏并不适用于Swift SpriteKit

时间:2016-07-01 19:36:16

标签: ios swift sprite-kit pause

关注了其他一些帖子,例如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功能。那有什么不对?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我不认为在游戏暂停时会执行runAction。试试吧

func unpauseGame() {
    self.view!.paused = false
}