2012-12-20 66 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的子代。但是,這應該很容易。

相關問題