简介
本文是阐述如何在2D动作游戏中进行精确而高效的碰撞检测。这里的碰撞是基于多边形而不是基于精灵的。这两者之间在设计上会有不同。
基于精灵的碰撞检测是通过精灵之间的重叠的像素来完成的。而多边形使用向量数学来精确计算交点,时间和碰撞方向。虽然多边形仅仅是精灵的一个近似,但是它比精灵系统要高级。
- 可以精确模拟逼真的简单物理学,例如反弹,摩擦,斜面的滑行
- 碰撞检测可以更精确的用于高速精灵系统。在基于精灵的系统中,如果物体移动过快就会在跳过另一个物体。
- 基于向量数学因此可以扩展到3D,然而精灵碰撞系统被严格限制在2D的情况下。
特性
本文使用的算法只适用于凸多边形,例如三角形,四边形,六边形,圆形。对于非凸多边形,你可以将其分解为多个凸多边形,例如三角形。
算法可以用于快速移动或慢速移动的多边形。不管物体移动多快,碰撞都不会丢失。它也可以处理重叠的问题,并促使交叠物体分离。
演示也支持分割多边形交叉。这可以用于子弹的建模。
同时提供了简单的物体系统,弹力,一些基本的摩擦和静摩擦力。用于确保物体不会从斜面上滑落。
有一个刚体系统的例子,使用了Chrsi Hecker的物理教程。
限制
有序碰撞。就是说并不是有序的进行碰撞。这对于快速移动的物体会出现一定的问题。一旦碰撞被检测到,它就被直接处理了。理想状态下你可能需要找到一个碰撞点并处理它,然后寻找更多的碰撞。但是对于2D动作游戏,这通常

本文探讨2D多边形的碰撞检测和响应,介绍如何精确模拟物体间的反弹、摩擦和斜面滑行效果。通过向量数学方法,该技术能应用于高速精灵系统,解决物体因移动过快导致的碰撞遗漏问题。内容还涉及Chris Hecker的物理教程,并以刚体系统为例,说明如何使用部分分离轴进行测试,确定BOX之间的相交情况。
最低0.47元/天 解锁文章
1368

被折叠的 条评论
为什么被折叠?



