我正在构建一个基于道路上汽车碰撞的模拟器。"汽车"是使用fillRect
绘制的基本矩形,并为每辆车设置随机的x和y坐标。模拟器的运动学部分工作完美,除非汽车相撞。我想做的是找到一种在不重新发明轮子的情况下检测碰撞的方法。从本质上讲,Java 中是否有这样的实现可以帮助解决这种情况?
如果没有,我有一个想法,包括将正方形区域中的每个 x 和 y 点放入每辆车的数组中。然后,如果另一辆车的"区域"与另一辆车的坐标重叠,那么就会发生碰撞。这可能是一个解决方案,还是有更简单的方法?也许一些建议会很棒!
如果没有,我有一个想法,包括把每一个x和y都放进去 将正方形区域指向每辆车的数组。
无需重新发明轮子。您是否在下面为汽车使用Rectangle
物体?您可以调用 contains
和 intersects
等方法,它们是 Rectangle
API 的一部分,以实现您想要的内容。您需要确保在移动之前检查Rectangles
的下一次移动,寻找碰撞。
看这里。