ios – 在Sprite Kit中暂停某些 *** 作

ios – 在Sprite Kit中暂停某些 *** 作,第1张

概述我最近开始开发我的第一个iPhone应用程序,它将是一个2D游戏. 到目前为止,一切进展顺利,项目已包含超过一千行代码. 但是,我刚刚陷入了一个小问题.与许多游戏一样,需要暂停它.我的第一个尝试就是在代码中使用它,暂停必须发生. self.view.paused = true; 工作正常,直到我需要一些动画发生后,有人按下暂停按钮.想象一下,一个新的精灵节点从屏幕底部向上滑动,其中包含有关当前分数 我最近开始开发我的第一个iPhone应用程序,它将是一个2D游戏.
到目前为止,一切进展顺利,项目已包含超过一千行代码.

但是,我刚刚陷入了一个小问题.与许多游戏一样,需要暂停它.我的第一个尝试就是在代码中使用它,暂停必须发生.

self.vIEw.paused = true;

工作正常,直到我需要一些动画发生后,有人按下暂停按钮.想象一下,一个新的精灵节点从屏幕底部向上滑动,其中包含有关当前分数的一些细节,等等.当然,使用上面的代码将停止所有动画.

我的新想法是简单地停止必须单独停止的所有节点.我通过使用这段代码得到了它.

[self enumerateChildNodesWithname:@"name" usingBlock:^(SKNode* node,BOol* stop) {            node.paused = true;            node.speed = 0.0;}];

尝试了几次,当我遇到另一个问题时,我终于找到了解决方案.需要停止的一些游戏精灵节点在一定时间后定期创建.以下代码负责此行为.

SKAction* createPeriodically = [SKAction repeatActionForever:[SKAction sequence:@[[SKAction performSelector:@selector(create) onTarget:self],[SKAction waitForDuration:15.0]]]];[self runAction:createPeriodically];

正如您所看到的,我正在使用waitForDuration在创建精灵节点之间有一个延迟.现在,当我暂停所有节点时,时间仍然继续,因此waitForDuration在设定的时间量之后完成,并且正在创建精灵节点,尽管所有其他节点都已暂停且未移动.

我希望你们能够理解我的问题.我正在寻找一种暂停机制来定期创建精灵节点的方法,同时仍能够在之后创建新的精灵节点并对新节点执行 *** 作.任何帮助表示赞赏.谢谢.

解决方法 如果在节点上设置了暂停,则会暂停节点及其子节点的所有 *** 作.因此,您可以通过设置场景的暂停属性来暂停整个场景上的所有 *** 作(包括createPeriodically),但之后您将返回与暂停视图相同的场景.

但是您可以利用节点及其子节点来组织场景.不是让构成游戏的所有节点都是场景的直接子节点,而是创建一个单独的节点来包含它们.而不是在场景中全局运行影响游戏内容的 *** 作(如createPeriodically),在这个单独的节点上运行它们.现在,当您想要暂停游戏时,在此节点上设置暂停 – 所有游戏内容 *** 作都将暂停,但仍有空间在场景本身上运行 *** 作或添加其他非暂停节点作为场景的直接子节点.

总结

以上是内存溢出为你收集整理的ios – 在Sprite Kit中暂停某些 *** 作全部内容,希望文章能够帮你解决ios – 在Sprite Kit中暂停某些 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1055025.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存