Java 二维碰撞检测

Java 二维碰撞检测,java,lwjgl,slick2d,Java,Lwjgl,Slick2d,我想知道除了标准坐标方式(if(xpos8))等之外,是否还有其他方法使用slick2D库进行碰撞检测。注意:我确实意识到这个问题有点老了,但这个答案可能对未来的访问者有所帮助 是的,有。 在Slick2D中,可以使用Shape#intersects(Shape other)方法检查形状之间的碰撞 Shape类已经提供了很多有用的方法,但是我建议使用矩形类,这对于一个简单的游戏来说可能更简单,因为您不必关心多边形变换。但是,如果您希望拥有更复杂的形状,则应该使用Polygon类。您必须自己处理一

我想知道除了标准坐标方式(if(xpos<3&&ypos>8))等之外,是否还有其他方法使用slick2D库进行碰撞检测。

注意:我确实意识到这个问题有点老了,但这个答案可能对未来的访问者有所帮助

是的,有。

在Slick2D中,可以使用Shape#intersects(Shape other)方法检查形状之间的碰撞

Shape类已经提供了很多有用的方法,但是我建议使用矩形类,这对于一个简单的游戏来说可能更简单,因为您不必关心多边形变换。但是,如果您希望拥有更复杂的形状,则应该使用Polygon类。您必须自己处理一些事情,因此我建议创建一个Hitbox类来扩展Polygon类,但是使用Polygon方法,您将更加灵活,并且能够旋转图形(这不可能与矩形类一起)

资源


我建议阅读AABB-Collison策略,或者出于更复杂的目的,阅读分离轴定理(SAT)。slick中没有内置实体碰撞检测方法。