2011-01-31 6 views
1

私はゲームをしています。画面の上部から落ちる球があり、プレーヤーはそれらを捕らえなければならず、それらは捕えられてお互いの上に積み重ねられます。私はそれぞれの新しいボールを作成し、それをスプライトを移動するために使用する配列に追加するメソッドを持っています。問題は、彼らが衝突した後、移動するのをやめる必要があるということです。そして、私がそれらを止めるようにしようとすると、彼らはすべて停止します。だから、私はポインタ属性を作成したいと思っていました。例えば、 "sprite.position"のように考えると、私はブール値のようにチェックできる新しい属性が必要です。私はsprite.hasCollidedのような属性を作成したいと思っていました。もしそれがYESを返したら、ボールは動かなくなります。これが可能か、それとももっと良い方法がありますか?cocos2d iPhoneのポインターアトリビュートを作成する

おかげ タナー

答えて

0

CCNodes(および継承によってCCSprites)には、void *のuserDataプロパティがあります。これを使用して、カスタムオブジェクトをcocos2dオブジェクトに関連付けることができます。 userDataオプションを使用する場合は、ほとんどの場合、スプライトの作成/割り当て時にメモリを割り当て、完了したら解放する必要があります。 UserDataプロパティの改良として

int* myInt = (int*)malloc(sizeof(int)); 
*myInt = 0; 
sprite.userData = myInt; 

//some time later, when you are done with the sprite 
free(sprite.userData); 

、あなたはxuanwengが示唆何とボールのためのさまざまなゲーム関連のプロパティを含むボールオブジェクトを作成し、使用してボールCCSpritesのそれぞれに、このインスタンスを割り当てることができます上記の方法。

1

私はあなたがボールオブジェクトを作成することをお勧め。オブジェクトの一部としてブール値を追加します。

関連する問題