首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Cocos2D-iPhone中暂停/恢复CCParticleSystem?

如何在Cocos2D-iPhone中暂停/恢复CCParticleSystem?
EN

Stack Overflow用户
提问于 2011-11-03 23:12:23
回答 2查看 1.8K关注 0票数 2

我目前正在用Cocos2D制作一个游戏,我需要暂停/恢复一些粒子系统以进行优化。

我该怎么做呢?

我知道我可以使用particleSystem unscheduleUpdate和particleSystem scheduleUpdate,但如何检查是否已安排了更新?

我希望暂停屏幕外的所有粒子系统,并在它们重新进入视图时恢复它们,因此当我移动视口时,我会在粒子系统中循环。

particleSystem.active似乎没有给我想要的标志来检查系统是否正在更新……

这里我漏掉了什么?

EN

回答 2

Stack Overflow用户

发布于 2011-11-03 23:44:06

不应计划或取消计划粒子系统或任何其他内部类的更新方法。这样做的问题是,可能会有其他调度的方法(即,使用优先级或间隔调度),然后会继续运行。

相反,您应该使用CCScheduler类的pauseTarget和resumeTarget暂停/恢复类实例的更新:

代码语言:javascript
复制
[[CCScheduler sharedScheduler] pauseTarget:particleSystem];
[[CCScheduler sharedScheduler] resumeTarget:particleSystem];

这将暂停/恢复所有计划的方法,而不仅仅是常规的更新方法。

您还可以检查目标的调度方法是否已暂停:

代码语言:javascript
复制
[[CCScheduler sharedScheduler] isTargetPaused:particleSystem];
票数 4
EN

Stack Overflow用户

发布于 2014-08-11 03:37:23

我使用的另一个技巧是setEmissionRate()函数。要暂停粒子系统,请执行以下操作:

setEmissionRate(0);

要恢复粒子系统,请执行以下操作:

setEmissionRate(latestValue);

我希望这对你有好处:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7997272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档