你好:)我目前正在开发一些关于在BlueJ上检查Java中两个矩形重叠的东西,而且我一直在检查互联网卡住了几个小时以获得任何帮助,但我还是找不到任何有助于我所处理的东西的东西。
目前,我正在编写一个名为“checkOverLap”的方法,看起来有点像这样:
private Boolean checkOverlap() {
if (word2.getXPosition() >= word1.getXPosition() && word2.getXPosition() <= word1.getXPosition() + word1.getTextWidth() && (word2.getYPosition() >= word1.getYPosition() && word2.getYPosition() <= word1.getYPosition() + word1.getTextHeight())){
return true;
}
else{
return false;
}
}
嗯,我对Java比较陌生,所以请原谅这种格式是多么糟糕&gt;。&gt;
它需要做的一般要点是,当矩形重叠时返回true :)否则,它将返回false。这是必需的原因,因为我希望矩形随机化它们在屏幕上的位置直到它们重叠。
我已经包含了返回X和Y坐标以及矩形的宽度和高度的访问器方法,这些是我在if语句中使用的比较,看看它们是否超过了一圈。
至于它有什么问题,我目前不确定,但我认为这与声明的逻辑有关,比如我没有比较正确的变量等,或者我添加了错误的运算符:/
任何建议或其他建议都会受到赞赏:)
答案 0 :(得分:1)
你不必自己动手。请改用java.awt.Rectangle
的交叉方法:
final Rectangle r1 = new Rectangle(50, 50, 10, 10);
final Rectangle r2 = new Rectangle(40, 40, 10, 10);
final Rectangle r3 = new Rectangle(40, 40, 15, 15);
System.out.println(r2.intersects(r1)); // false
System.out.println(r3.intersects(r1)); // true