我正在创建一个 Roguelike 地下城生成器,其中一部分涉及检查一个房间(由 x1、y1、x2、y2 表示)是否与另一个房间“碰撞”。如果是这样的话,房间就会重新生成。我尝试过谷歌搜索,但还没有找到任何有用的东西。这是一些基于我在网上找到的代码,但它似乎总是返回 true。
public static boolean isInside(int minX1, int minY1, int maxX1, int maxY1, int minX2, int minY2, int maxX2, int maxY2) {
if(Math.abs(minX1 - minX2) < (minX1 + maxX1) + (minX2 + maxX2)) {
if(Math.abs(minY1 - minY2) < (minY1 + maxY1) + (minY2 + maxY2)) {
return true;
}
}
return false;
}
感谢您的阅读!
最佳答案
您可以使用 Rectangle
类中的 intersects()
方法:
https://docs.oracle.com/javase/8/docs/api/java/awt/Rectangle.html#intersects-java.awt.Rectangle-
关于Java - 检查 4 个点(形成一个矩形) "collides"是否与另外 4 个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34717066/