2012-12-20 93 views
0

我有一个CCSprite可以围绕iPhone的屏幕弹跳。这个精灵有一个CCParticleSystemQuad作为子节点。粒子只是小而简单的圆形,在移动的精灵后面。一切工作正常,直到精灵旋转由于与屏幕边缘碰撞。发生这种情况时,现有的粒子突然被吸引到一个奇怪的位置。将CCParticleSystemQuad作为子节点旋转CCSprite

任何想法为什么会发生这种情况?

到目前为止,我已经尝试了几件事情。首先,我尝试了粒子系统的所有三个positionType值。这些都不能解决旋转问题。实际旋转使用CCRotateTo完成。删除此操作可修复粒子位置问题。因此,在CCLayer上旋转CCSprite子节点可能会取代我目前的CCSprite。我试着通过http://www.cocos2d-iphone.org/forum/topic/63951阅读,但它有点凌驾于我的头上。任何意见和建议,非常感谢!

编辑#1我找到一个快速解决方案:立即CCRotateTo之前,我告诉尾随颗粒resetSystem。不过,我仍然想了解奇怪绘图行为的原因。

回答

1

我认为这是因为CCParticleSystem是CCSprite的孩子而发生的,那么对精灵进行的任何位置或旋转都会影响所有正在和已经发出的粒子的行为。所以如果你有一些尾随的粒子仍然留在屏幕上,它们仍然是CCSprite的孩子,旋转它会导致所有滞留的粒子绕着精灵的当前位置旋转。

如果您想消除这种影响,可以将CCParticleSystem添加到图层,以便它不受CCSprite旋转的影响。这种方法的缺点是你必须添加代码才能让CCParticleSystem跟踪CCSprite的位置,因为它不再是CCSprite的子代。但是,这应该很容易。

相关问题