3

私のアプリには、プレーヤーと多くの敵(約100人以上)がいます。CGRectsは敵に適合しないため、使用したくありません。多くのスプライトを使用してcocos2dでピクセルパーフェクト衝突検出を行う方法の例はありますか?

いくつかの説明は素晴らしいでしょう;)

どうもありがとうございます!

編集:私はCCSpriteと.pngファイルを使用しています。pngには透明度がありますが、透明度のないピクセルでの衝突のみを検出する必要があります。

編集:私の敵は丸いです。

4

1 に答える 1

4

円と円の衝突が最も簡単です。そして、計算が最も速いです。プレーヤーの半径と敵の半径を知っているといいのですが。20をプレーヤーの半径、10を敵の半径とします。簡単な計算は次のようになります。 :

float dx = player.spr.x - enemy.spr.x;
float dy = player.spr.y - enemy.spr.y;
float dxy = dx*dx + dy*dy;
float collisionRad = (20+10)*(20+10);

if(dxy<= collisionRad)
{
//collision
}

ピタゴラス定理を使用して2点間の距離を計算しています 。http://en.wikipedia.org/wiki/Pythagorean_theorem

于 2011-04-24T11:28:42.563 に答える