【发布时间】:2017-11-07 00:00:56
【问题描述】:
我试图找出一种方法来比较 if 语句中的两个数字范围。我正在研究的方法返回一个布尔值以查看两个精灵是否重叠,我目前正在考虑通过比较它们的位置来实现它。精灵是 60X60,它们的 x 和 y 位置参考它们的左上角。
我是不是走错了路?如果不是,那么通过 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;
}
【问题讨论】:
-
向我们展示您的代码以及您的尝试。
-
在
Point(docs.oracle.com/javase/7/docs/api/java/awt/…)中使用equals方法。
标签: java if-statement sprite