我最近遇到了一个类似的问题,当它们的父级改变方向时,粒子会四处跳动。我不确定这是否是完全相同的问题,但这是我发现有助于解决我的问题的线程:
http://www.cocos2d-iphone.org/forum/topic/17167
相关帖子:
我刚刚遇到了同样的问题,我花了一段时间才找到它的底部,>这是低点:不要使用
[自我计划:@selector(NextFrame:)];
相反,使用
[自我时间表更新];
并重命名 NextFrame: 以更新:
使用自定义选择器将您的更新安排在 CCScheduler 队列的最后,换句话说,它将导致您的 NextFrame: 方法在粒子系统的 update: 方法之后被调用,因为粒子系统会优先安排自己的更新方法1. 这不好,因为粒子的四边形位置是使用发射器的当前位置更新的,然后发射器在您的 NextFrame: 方法中移动,这会导致所有粒子再次移动,因为位置发射器的位置实际上是绘制粒子的 CCNode 的位置。通过使用 scheduleUpdate,您实际上安排了 update: 方法的优先级为 0,这意味着它将在粒子系统的 update: 方法之前调用,一切都会很好。
所以基本上,在你的类中添加一个更新方法并调用 scheduleUpdate 而不是手动调度它。