SpriteKit - 暂停输入

问题描述 投票:0回答:1

我在我的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中的场景,如果没有,那么在游戏暂停时哪种方式最好暂停输入。

swift sprite-kit
1个回答
0
投票

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

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

var isGamePaused = false

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

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

guard !isGamePaused else { return }

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

© www.soinside.com 2019 - 2024. All rights reserved.