CCParticleSystemQuad を使用してパーティクル エフェクトを作成しています。ここで、Cocos2d シーンからの CGRect との衝突をテストしたいと思います。これに似た別の件名をリストし、少し近づいたが、まだ完全な解決策を持っていないので、わずかに異なる件名で再リストした.
私は解決策の半分を持っています。各パーティクルの位置を取得し、衝突をテストすることができます。次に、それぞれが衝突したときの位置を設定したいと思います。現在、CCParticleSystemQuad をサブクラス化し、次のように独自のゲッターを追加しています。
-(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」メソッドをオーバーライドするように言われましたが、これを正確に行う方法がわかりません。
誰かがこれを行う方法の例を見せてくれたら、私はとても感謝しています.