2011-09-12 16 views
4

私は小さなAndroidゲームを開発しています。 AndEngineの使用を開始する前に、私はCanvasオブジェクトを使用し、その上にすべてを描画しました。 2つのビットマップが互いに衝突するかどうかをテストするために、境界ボックスが重なるかどうかを調べました。この場合、両方のビットマップのオーバーラップする矩形に1つの透明ピクセルが共通しているかどうかを確認しました。 この方法は完全に機能し、ピクセルの完全な衝突を検出することができました。AndEngine:2つのスプライトの衝突

パフォーマンス上の問題があるため、私はAndEngineの使用を開始しました。衝突検知は静かに動作しますが、2つのスプライトの衝突テストは、正確に作業画素を完璧に処理します。衝突テストは「単なる」バウンディングボックステストです。ここで

答えて

5

は2つのアニメーションスプライトの衝突のためにピクセルの完璧な検出、コードの下

AndEngine - Pixel Perfect Detection

+0

これらのライブラリは、旧バージョンのEngine –

1

の良い例であるpixelPerfectクラスを使用せずにandEngineで私に適しています。それはあなたのために役立つかもしれません。

public boolean isCollides(AnimatedSprite animSprite1 ,AnimatedSprite animSprite2) throws Exception{ 


float diffX = Math.abs((animSprite1.getX() + animSprite1.getWidth()/2)- 
      (animSprite2.getX() + animSprite2.getWidth()/2)); 
float diffY = Math.abs((animSprite1.getY() + animSprite1.getHeight()/2)- 
      (animSprite2.getY() + animSprite2.getHeight()/2)); 

if(diffX < (animSprite1.getWidth()/2 + animSprite2.getWidth()/3) 
      && diffY < (animSprite1.getHeight()/2 + animSprite2.getHeight()/3)){ 

    return true; 
}else 
    return false; 
} 
関連する問題