技术资源用于2D中的碰撞检测?

bor*_*ego 12 algorithm collision-detection

您认为在2D环境中描述用于碰撞检测的算法或技术的最佳资源(书籍或网页)是什么?

我只是渴望学习不同的技术来制作更复杂,更高效的游戏.

Jef*_*eff 13

碰撞检测通常是两阶段过程.某种"宽相"算法,用于确定两个对象是否有可能重叠(试图避免n ^ 2比较),然后是"窄相"碰撞检测算法,该算法基于应用程序的几何要求.

对于经历相对物理运动的物体而言,Sweep和Prune是一种成熟的高效宽相算法(适用于您的应用的少数几种变体)(快速移动或具有大不相同的区域和边界区域可能使这种情况不适合).该子弹库中有参考3D实施.

窄相位碰撞通常可以像"CircleIntersectCircle"一样简单.Bullet库再次具有良好的参考实现.在3D土地上,当任意物体需要更精确的探测时,GJK是目前的作物之一 - 据我所知,没有任何东西可以阻止它适应2d(但它最终可能比粗暴强迫你的所有边缘慢; )

最后,在进行碰撞检测后,您经常需要某种碰撞响应. 方框2d是物理响应解决方案的良好起点.


Fra*_*ger 2

就我个人而言,我喜欢保罗·伯克的作品。

此外,保罗·内特尔 (Paul Nettle) 曾经就这个话题撰写过文章。他有一个完整的 3D 碰撞检测库,但您可能对此类库背后的想法更感兴趣(这非常适用于 2D)。为此,请参阅使用椭球体的游戏的常规碰撞检测