Cocos2d iphone 将CCParticleSystemQuad作为子节点旋转CCSprite

Cocos2d iphone 将CCParticleSystemQuad作为子节点旋转CCSprite,cocos2d-iphone,rotation,ccsprite,ccparticlesystem,Cocos2d Iphone,Rotation,Ccsprite,Ccparticlesystem,我有一个CCSprite,可以在iPhone屏幕上弹跳。此精灵的子节点为CCParticleSystemQuad。粒子只是在移动的精灵后面的小而简单的圆圈。在精灵因与屏幕边缘碰撞而旋转之前,一切正常。发生这种情况时,现有粒子会突然被绘制到一个奇怪的位置 知道为什么会发生这种情况吗? 到目前为止,我已经尝试了一些方法。首先,我尝试了粒子系统的所有三个positionType值。这些都不能解决旋转问题。实际旋转通过CCRotateTo完成。删除此操作可修复粒子位置问题。因此,在CCSprite层上旋

我有一个
CCSprite
,可以在iPhone屏幕上弹跳。此精灵的子节点为
CCParticleSystemQuad
。粒子只是在移动的精灵后面的小而简单的圆圈。在精灵因与屏幕边缘碰撞而旋转之前,一切正常。发生这种情况时,现有粒子会突然被绘制到一个奇怪的位置

知道为什么会发生这种情况吗?

到目前为止,我已经尝试了一些方法。首先,我尝试了粒子系统的所有三个
positionType
值。这些都不能解决旋转问题。实际旋转通过
CCRotateTo
完成。删除此操作可修复粒子位置问题。因此,在
CCSprite
层上旋转
CCSprite
子节点可能会取代我当前的
CCSprite
。我试着通读一遍,但有点过头了。非常感谢您的反馈和建议


编辑#1我找到了一个快速修复方法:在
CCRotateTo
之前,我告诉后面的粒子
重置系统
。但是,我仍然想了解奇怪绘制行为的原因。

我认为这是因为CCParticleSystem是CCSprite的子对象,那么在sprite上执行的任何位置或旋转都会影响正在发射和已经发射的所有粒子的行为。因此,如果您有一些仍然在屏幕上徘徊的尾随粒子,它们仍然是CCSprite的子对象,旋转它将导致所有徘徊粒子围绕sprite的当前位置旋转

如果要消除此效果,可以将CCParticleSystem添加到层中,使其不受CCSprite旋转的影响。这种方法的缺点是,您必须添加代码,使CCParticleSystem跟踪CCSprite的位置,因为它不再是CCSprite的子对象。然而,这应该很容易做到