2011-06-28 10 views
1

私はCCParticleSystemQuadを使ってCocos2dでパーティクルエフェクトを作成しています。 CCRectとの衝突について各パーティクルをテストしたいと思います。 パーティクルエンジンの各パーティクルの位置を取得するにはどうすればよいですか?Cocos2d(iphone)の粒子位置を取得する方法

ご了承ください。私はこれについてチュートリアルを見つけることを期待して、ネット上で数時間を探しました。私は、粒子との衝突が不可欠であると予想しているので、私はそれほど見つけることができないのに驚いています。おそらく、私は右の場所で見ていませんでした:)

答えて

4

CCParticleSystemQuadのサブクラスを作成し、update:メソッドまたはupdateQuadWithParticle:newPosition:メソッドをオーバーライドします。

@interface MyParticleSystem : CCParticleSystemQuad 
@end 

@implementation MyParticleSystem 
- (void)updateQuadWithParticle:(tCCParticle*)particle newPosition:(CGPoint)pos 
{ 
    /* use pos */ 
    [super updateQuadWithParticle:particle newPosition:pos]; 
} 
@end 

EDITED:

次のような粒子に任意のデータを(位置、色、又はように)設定することができます。

@interface MyParticleSystem : CCParticleSystemQuad 
@end 

@implementation MyParticleSystem 
- (void)update:(ccTime)dt 
{ 
    /* implement as cocos2d/CCParticleSystem.m -update: */ 
} 
@end 
0

インタフェース用のヘッダファイルはここにある

CCParticleSystemQuad* particle_system = ...; 
for(int i = 0; i < particle_system->particleCount; i++) 
{ 
    particle_system->particles[idx]->pos; // Here is your position 
} 

のようなものを試してみてください:http://www.cocos2d-iphone.org/api-ref/latest-stable/_c_c_particle_system_8h_source.html

警告:塩の粒でこの答えを取ります私はCocos2dやObjective-Cを使用しないためです。

+0

ありがとう、私はそれを試しましたが、インスタンス変数 'particleCount'と 'particles'が保護されていると宣言されています。回避策はありますか? – Kangoo

+0

私はparticleCountのアクセサーがあると思いますが、パーティクルについては表示されません。手動でヘッダーを編集できると思いますが、そうでなければアクセスできないのかどうかはわかりません...おそらく描画コードを見るかもしれません何とか描かれる必要があります。 – Arelius

関連する問題