到目前为止,一切进展顺利,项目已包含超过一千行代码.
但是,我刚刚陷入了一个小问题.与许多游戏一样,需要暂停它.我的第一个尝试就是在代码中使用它,暂停必须发生.
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中暂停某些 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)