SpriteKit - 暂停输入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpriteKit - 暂停输入相关的知识,希望对你有一定的参考价值。

我在我的Spritekit游戏中添加了一个暂停按钮,暂停游戏,如下所示:

    @objc func pauseGame()
{
    pauseButton?.isHidden = true
    pauseMenu?.isHidden = false
    gameScene?.isPaused = true      // This is the main scene, which is supposed to be paused
}

这可以按预期工作,但场景仍然通过触摸功能和手势识别器进行输入,并且在场景继续后,角色会进行各种动作,这是不应该做的。

所以,基本上我只是想知道,如果有一个最好的做法来暂停SpriteKit中的场景,如果没有,那么在游戏暂停时哪种方式最好暂停输入。

答案

暂停场景不会阻止输入,正如您已经发现的那样。它只能阻止动画,声音和动作的运行。

我所做的是为暂停状态创建一个变量

var isGamePaused = false

然后在暂停游戏时将变量设置为true

然后在更新功能和触摸功能中我放了一个警卫来检查游戏是否暂停

guard !isGamePaused else { return }

这样,更新不会运行,并且场景不会接收到触摸。如果要取消暂停场景,只需在设置场景时设置isGamePaused = false isPaused = false

以上是关于SpriteKit - 暂停输入的主要内容,如果未能解决你的问题,请参考以下文章

SpriteKit 暂停和恢复 SKView

SpriteKit 和 SceneKit – 如何完全暂停游戏?

在 spritekit 中暂停游戏时显示菜单

在 SpriteKit 中暂停游戏后文本消失

SpriteKit和SceneKit - 如何完全暂停游戏?

暂停 spritekit 场景并显示“暂停”标签