Java で簡単なゲームを作成しようとしていますが、衝突に少し問題があります。自転車に乗ってレーンからレーンへジャンプして岩を避け、コインを集めるゲームです。衝突に交差メソッドを使用しようとしていますが、画像を使用しているため、写真と同じ座標とサイズの長方形オブジェクトを作成し、交差メソッドを使用しようとしましたが、決して true を返しません。四角形を画面に描画しようとしましたが、必要に応じて移動しています。そして今、座標が同じで、それが機能するかどうかを確認して、衝突をチェックしています。しかし、if ステートメントを切り替えて intersects メソッドを挿入するとすぐに、それらは互いに通過します。コードを見ただけで問題が発生した場合は、ご連絡ください。お時間いただきありがとうございます。P. S 私はこれまでこの Web サイトにコードを挿入しようとしたことがないので、コードが正しく表示されることを願っています。編集:私の間違いと遅い編集について非常に申し訳ありません! 学校から帰ってきたばかりで忙しかった!
Rectangle heroRect;
heroRect = new Rectangle(heroX,heroY,85,90);
私はすべてのオブジェクト、岩、コイン、プレーヤーに対してそのようにしました。それらはすべて同じサイズではありません。
public void collision(){
for(Rock rock : rocks){
if(rock.rockRect.intersects(player.heroRect)){
going = false;
}
}
if(coin.getY() == player.getY() && coin.getX() == player.getX()){
score++;
try{
Thread.sleep(5);
}
catch(Exception e){}
}
}
これは、衝突検出をチェックするメソッドです。最初の if ステートメントは intersects メソッドを使用しており、下のステートメントは現在テストなどに使用しているものです。両方のロックで試したので、岩に配列リストを使用しているという事実とは何の関係もないことはわかっています。そしてコイン。