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 和 SceneKit – 如何完全暂停游戏?