我正在使用CCParticleSystemQuad創建粒子效果。現在我想測試與我的Cocos2d場景中的CGRect的碰撞。我列出了另一個類似於這個主題的主題,並且更接近了一些,但是我仍然沒有完整的解決方案,因此我重新列出了一個稍微不同的主題標題。使用Cocos2d中的粒子進行碰撞檢測
我有一半的解決方案。我可以得到每個粒子的位置並可以測試碰撞,現在我想設置每個碰撞時的位置。 我目前繼承的CCParticleSystemQuad再加入我自己的getter像這樣:
-(tCCParticle*)getQuadParticle:(int)quadIndex
{
return &particles[quadIndex];
}
然後在我的cocos2d中的場景,我可以得到的顆粒和位置:
tCCParticle *particle = [emitter getQuadParticle:i];
CGPoint pos = particle->pos;
這工作,但警告說,CCParticleSystemQuad可能不會響應getQuadParticle。這是一個問題,但我想現在要做的是設定在一個時尚,如類似於從場景中的什麼位置:
[emitter setParticlePos:i newPosition:newPos];
但是我不知道如何做一個二傳手,這是否從工程我的場景。如果可能的話,我不想在particle子類中進行碰撞檢測。
我開始了另一個類似性質的話題,叫做「如何在Cocos2d(iphone)中獲取粒子位置」,並且我被告知要覆蓋「update」方法或「updateQuadWithParticle」方法,但我不確定如何去做這件事究竟。
如果有人能告訴我一個如何做到這一點的例子,我將不勝感激。
你想對每個單獨的粒子進行碰撞檢測嗎?我可以告訴你如何檢測發射器上的碰撞,但我不認爲這是你想要的。 –
是的,我需要分別管理每個粒子。有任何想法嗎? – Kangoo
不是。只是猜測,因爲我還沒有大量研究過粒子系統,但是你並不需要使用內置的粒子系統(或者你可以重寫它們)。每個粒子就是用不同的色調和不透明度顯示的精靈(我猜)。最好的辦法是深入研究Cocos2d Code並重寫一些方法,讓每個精靈/粒子添加自己的身體。 –