-2
私はifステートメントの2つの数値の範囲を比較する方法を見つけようとしています。私が取り組んでいるメソッドは、2つのスプライトが重なっているかどうかを調べるブール値を返します。現在、それらの位置を比較して実装することを考えています。スプライトは60X60で、xとyの位置は左上隅を参照します。if文の2つの数値範囲を比較しますか?
私はこれについて間違った方法をしていますか?そうでない場合は、if文でこれらの範囲を比較する最良の方法は何ですか?
編集: これは私の試みです。私はそれが動作していると思ったが、それは常に重複を正しくピックアップしないようだ。
public boolean overlaps(Sprite s)
{
if ((s.getX() >= this.getX()) && (s.getX() <= (this.getX() + 60)))
{
if ((s.getY() >= this.getY()) && (s.getY() <= (this.getY() + 60)))
{
return true;
}
else if ((s.getY() + 60) >= this.getY() && ((s.getY() + 60) <= (this.getY() + 60)))
{
return true;
}
}
else if ((s.getX() + 60) >= this.getX() && ((s.getX() + 60) <= (this.getX() + 60)))
{
if ((s.getY() + 60) >= this.getY() && ((s.getY() + 60) <= (this.getY() + 60)))
{
return true;
}
else if ((s.getY() >= this.getY()) && (s.getY() <= (this.getY() + 60)))
{
return true;
}
}
return false;
}
をあなたたちを表示する一つの可能性は、
Rectangle.intersects(x, y, w, h)
第1の幅と高さのために、いくつかの定数を定義を使用することですコードとあなたが試したこと。 – m0skit0
'Point'(https://docs.oracle.com/javase/7/docs/api/java/awt/Point.html#equals%28java.lang.Object%29)でequalsメソッドを使用します。 – kalabalik