我正在使用 CCParticleSystemQuad 创建粒子效果。现在我想测试与 Cocos2d 场景中的 CGRect 的碰撞。我列出了另一个与这个相似的主题,并且离得更近了一点,但是我仍然没有完整的解决方案,所以我重新列出了一个稍微不同的主题标题。
我有一半的解决方案。我可以得到每个粒子的位置并可以测试碰撞,现在我想设置每个粒子碰撞时的位置。我目前正在对 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];
但是,我不确定如何制作一个可以在我的场景中执行此操作的设置器。如果可能的话,我不想在粒子子类中进行碰撞检测。
我开始了另一个类似性质的主题,称为“如何在 Cocos2d (iphone) 中获取粒子位置”,并被告知要覆盖“update”方法或“updateQuadWithParticle”方法,但我不确定如何准确解决这个问题。
如果有人可以向我展示如何执行此操作的示例,我将不胜感激。