【发布时间】:2020-12-20 18:54:23
【问题描述】:
我在我的游戏中使用 Java 矩形来检查对象之间的碰撞(使用 intersects() 方法)。据我所知,如果其中一个对象被旋转,则无法做到这一点。
例如,游戏中的一个物体旋转了 65°。我将如何检查这个对象的碰撞?有没有办法可以为它的矩形添加旋转?如果没有,有没有一种方法可以在不使用矩形的情况下检查碰撞(使用例如像素颜色)?
【问题讨论】:
-
你试过用铅笔和纸画两个矩形,一个旋转一个不旋转,然后想出一个算法吗?然后将其转换为您自己的
intersects方法。这就是大多数此类问题的解决方法。 -
-
@gpash 如果你想做正确的事情,你需要分段相交:想象两个细长的矩形组成一个 X,其中一个矩形的点都不在另一个矩形内。请注意,您需要线段,而线段相交是不够的:想象那些相同的线段,在顶部不接触茎的地方形成一个 T。
标签: java collision-detection rectangles