我正在使用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并重写一些方法,让每个精灵/粒子添加自己的身体。 –