説明:Androidの衝突検出
私はほぼ完了ですプロジェクトを持っているが、私は衝突が実際に動作していない気づきました。これはタッチスクリーンでコントロールできるヘビのようなゲームなので、シャープな(?、すみませんな)角度が可能です。現時点では、ちょっとした旋回を可能にするために少しの許容範囲を残しています(最初の2つのスプライトを無視してください)。主な問題は、スプライトが回転しており、結果的にオーバーサイズの衝突ボックスになることです。私はゲームエンジンやOpenGLを使用していません。
衝突コード: offsetX offsetY &ビットマップは幅または高さ/ 2され、蛇の頭に呼ばれています。蛇の各リンク(鳥)が配置可能
public boolean doesHit(Placeable p) {
int xLen = Math.abs(this.x - p.x);
int yLen = Math.abs(this.y - p.y);
if (bmp != null) {
if (xLen < offsetX + p.offsetX && yLen < offsetY + p.offsetY)
return true;
} else {
if (xLen < Bird.BIG_W[Bird.mUseBird]/2
&& yLen < Bird.BIG_H[Bird.mUseBird]/2)
return true;
}
return false;
}
TLであり、DR /質問:Rectsを回転させ、その後、(それらを比較する方法はあり
好ましく、ゲームはすでに完成しているようこれから離れて)?または、最も単純な方法は、OpenGL /ゲームエンジンに移植することですか?
これは意味があります。しかし、私はそれを実装する方法を考えることはできません。どうしますか? – SBoss
試してみてくださいhttp://fypandroid.wordpress.com/2011/07/03/how-to-calculate-the-intersection-of-two-circles-java/ –