したがって、基本的には、2 つの Rectangle 間で適切な衝突を行う方法を見つけようとしています。検出は問題ではありませんが、長方形がクリップし始めます。位置をリセットしたいのですが、どうすればいいですか?dx と dy を使用してリセットしようとしていますが、正しい座標にリセットされません。
http://i.stack.imgur.com/IU6sK.png (申し訳ありませんが、まだ画像を使用できません)
System.out.println(this.y + this.h + " " + e.getY());
if(this.y + this.h >= e.getY())
{
if(this.dy > 0)
{
this.y -= delta * this.dy + 0.1;
this.dy = 0;
}
else
{
this.y += delta * this.dy;
this.dy = 0;
this.inAir = false;
}
}
このコードは、私がどのように試しているかを示すための単なる例です。(this = 白い Rectangle と e = オレンジ色の Rectangle) Rectangle を拡張するクラス Entity を使用しました。
これを呼び出す前に交差点をチェックしています。これは「白い」エンティティの関数であり、交差はメイン ループの更新関数でチェックされます。
これを使用すると、長方形の間に1pxほどあります。何か案は?助けてくれてありがとう:)