弾丸として機能する1つのスプライトと複数のビットマップがあります。問題は、弾丸を非常に速く動かしたいということですが、これも衝突検出機能に問題をもたらします。その仕組みは、すべてのフレームで敵と弾丸の両方にRectを作成し、オーバーラップをチェックすることです。
弾丸が非常に速く進むと、ポイントからポイントへの「ジャンプ」のようになります。つまり、敵が小さく、弾丸が敵を「ジャンプ」した場合、気付かれることはありません。
私が知りたいのは、2つの移動するオブジェクト間で衝突が発生するかどうかを検出する方法があるかどうか、または敵が弾丸の軌道にあるかどうかを確認する方法があるかどうかです。
敵の配列をループして衝突検出を行い、そのforループの内側ですべての弾丸をループしてから、両方のrectを作成し、各敵と弾丸のRect.intersectsとの衝突をチェックします。
弾丸の方向は、1つの固定小数点とタッチ入力によって測定され、次の関数によって計算されます。
public void calcPoint(float x, float y) {
double alfa = Math.atan(x / y);//x and y are inputs
bulletPointX = (float) Math.sin(alfa) * speed;
bulletPointY = (float) Math.cos(alfa) * speed;
}
私はそれを修正する方法がわかりません、そして私はそれをどのように行うか、そして例を作るためにいくつかのアイデアが欲しいです...