2つの四角形の間にintersects()を使用して最終的に衝突検出を行っていますが、動作しているようです。しかし、プレイヤーはちょうど長方形にくっついて動くことができません。だから私は現在、プレーヤーが動く前に衝突をチェックしようとしています。移動前のJavaの衝突検出
if(up == true){
Rectangle futurerect = new Rectangle(px,py-=5,81,150);
if(!futurerect.intersects(wallexample)){
py-=5;
repaint();
}
}
if(down == true){
Rectangle futurerect = new Rectangle(px,py+=5,81,150);
if(!futurerect.intersects(wallexample)){
py+=5;
repaint();
}
}
if(left == true){
Rectangle futurerect = new Rectangle(px-=5,py,81,150);
if(!futurerect.intersects(wallexample)){
px-=5;
repaint();
}
}
if(right == true){
Rectangle futurerect = new Rectangle(px+=5,py,81,150);
if(!futurerect.intersects(wallexample)){
px+=5;
repaint();
}
}
を私はちょうど新しい矩形を作成しますが、それはプレイヤーが移動した場合も、それが衝突するかどうかを確認する場所で:ここで
は、私がしようとしているものです。もしそうなら、動かさないでください。
問題は、プレイヤーが四角形の中に移動すると、遅くなることです。それはまだ壁を通って動きますが、何らかの理由でより遅いペースで動きます。
この問題の原因は何ですか?
ああ、私は今、私のミスを参照してください、ありがとう:
は、PX/PYに新しい値を代入しませんので、ここでの論理を固定してください。 – joey942