我正在创建一个2D横摇射击游戏,但在子弹的碰撞检测方面遇到了一些麻烦。包括项目符号在内的所有事物都是具有自己的多边形/更新方法的对象。
问题在于子弹速度很快,并且以每秒60帧(游戏运行时)的速度,子弹通常会直接跳过一堵墙-因为它在更新间隔内移动的速度超过了墙的宽度-并且继续愉快地前进,因为多边形实际上不会重叠。
我该怎么办?我唯一能想到的就是从旧位置到新位置绘制一条线,并在该位置上进行碰撞检测,但是slick2d文档建议针对碰撞检测使用线图。我该如何解决?
没有完整的答案,所以发表评论。我从不建议以图形方式画一条线,但是从数学上讲您可以做到这一点,它只是一个简单的射线平面相交以查看是否发生了碰撞。然后,您可以执行较小的固定步长检测,以获取发生碰撞时的准确时刻(以及随之而来的所有信息),而不必按照答案中的建议始终以更高的速度运行。进行成本更低的检查,然后花时间获取所需的精确答案。
—
詹姆斯