gpt4 book ai didi

ios - 如何有效地暂停 spritekit 中的游戏?

转载 作者:可可西里 更新时间:2023-11-01 03:06:23 24 4
gpt4 key购买 nike

这似乎是一个基本概念,但实际上没有好的答案。

我目前有一个非常基本的设置,在我的游戏场景中,我有一个 enum gameState,它当前是 inGamegamePaused

我设置了我的按钮,按下它可以简单地切换 gameState

然后,为了让它工作,我有两种单独的更新方法:一种用于 gamePaused 时,一种用于 inGame 时。

这适用于我 95% 的游戏,因为我的游戏中的更新可以很容易地启动和停止,没有任何问题。不过,有些问题我无法解决。

首先是行动。我将 SKActions 用于我的一些项目(一些移动、缩放、淡入淡出...),并且此方法不会暂停它们。这在某些方面可能是灾难性的。其次,这不会处理与我的更新方法没有直接关联的粒子、物理和其他一些事情。

我唯一的线索是 self.view.paused = YES,但这也行不通。

首先,这确实解决了我的 Action 、粒子和物理问题……有点。但是This question这表明 SKActions 实际上并没有因此而暂停,而是完全停止了。这是真的?如果是的话,那也不会很顺利,因为我的 Action 乱七八糟。

此外,暂停 View 似乎如其所说:停止一切。一切。新手问题在这里,但我应该如何让任何代码在那时运行?都断了这是我需要 subViews 的地方吗?我还从未使用过 subView,但在这种情况下这听起来正是我想要的。

简而言之,我有很多悬而未决的问题,我不知道如何进行。我希望在 Sprite Kit 中有一些暂停的“标准程序”,但是暂停 View 停止操作我真的不知道从哪里开始。

我应该放弃使用 Action 吗?我的想法是暂停 subView 声音吗?

我不想喋喋不休,我只想知道您如何在一般的 Sprite Kit 项目中暂停。根据要求提供额外信息。

最佳答案

暂停节点将暂停(而不是停止)节点的操作,我想暂停也将以相同的方式应用于暂停节点的所有子节点。所有其他未暂停的节点将继续运行它们的操作直至完成。

您应该有一个“游戏层”节点,其中包含您要暂停的所有游戏节点,然后只暂停该“游戏层”节点。然后有一个“暂停游戏菜单”节点,您可以在其中添加您需要的所有暂停菜单内容,即使游戏层暂停,这些内容也会继续正常运行。

请务必不要使用 performSelectorNSTimer 或 GCD 或除操作或场景更新之外的任何其他调度方法:方法,因为这些方法不会遵守节点的暂停状态。

暂停 View 会有效地卡住其中的所有内容,根据某些暂停场景不会暂停更新:调用 - 但我自己尚未验证这一点。如果是这种情况,您始终可以在更新方法内部检查您向其发送消息的给定节点是否已暂停,如果是,则决定不向该节点发送某些消息。

关于ios - 如何有效地暂停 spritekit 中的游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23508368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com