0

关注了其他一些类似这样的帖子,但由于某种原因,对于我的情况并不能正常工作。

谁能解释我为什么或我做错了什么?

所以现在,我得到了一个 SKLabelNode,它在我的游戏一开始就附加在框架中,但 alpha = 0。那只是说“暂停”。这个想法是通过在按下暂停按钮时设置 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 函数。那么有什么问题呢?

提前致谢。

4

1 回答 1

1

我认为游戏暂停时不会执行 runAction。尝试简单

func unpauseGame() {
    self.view!.paused = false
}
于 2016-07-01T19:46:16.767 回答