gpt4 book ai didi

ios - 暂停除一个节点的动画之外的所有内容?

转载 作者:可可西里 更新时间:2023-11-01 01:34:45 25 4
gpt4 key购买 nike

我正在编写旧版 Space Invaders 游戏的克隆版。入侵者在 update() 期间移动并随机 throw 炸弹;触摸屏幕时玩家船会移动。如果入侵者炸弹击中了玩家,我希望一切都停止,除了玩家的飞船死亡动画。一旦完成,我希望一切重新开始。

实现此目标的最佳方法是什么?我考虑枚举所有节点,将 paused 属性设置为 true;在 update() 中添加检查以查看死亡动画是否正在播放器上运行,如果是则跳过移动,如果动画正在运行则类似地忽略用户输入。

另一种方法是拥有一个世界节点,所有内容都是其子节点。然后我可以暂停世界节点并将玩家飞船的副本添加到运行动画的场景中,使其看起来除了玩家的飞船死亡动画外一切都已停止。

为了达到我想要的效果,这两个似乎都需要做很多工作。有什么建议吗?

最佳答案

你可以创建两个不可见的rootNode,你的敌人、你的对象和你所有的游戏环境(标签、硬币..)都是 child :

self.rootNode.addChild(enemy1)

和另一个 rootShipNode,您已经在其中添加了您的播放器。使用这种方法,您可以在暂停时停止所有节点,或者随时暂停不可见的节点。

您可以采用此过程向您的场景添加一个暂停节点(SKNode):

var pauseNode: SKNode! // a node with resume, go to menu, buttons
self.addChild(pauseNode)

当您按下暂停按钮时,您可以打开您的 pauseNode 并启动:

self.rootNode.paused = true
self.rootPlayerNode.paused = true

但所有添加到自身的动画和对象,包括 pauseNode 元素和动画,都在运行中。

关于ios - 暂停除一个节点的动画之外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38656636/

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