如何使这种碰撞检测算法同时考虑所有对象

本文关键字:对象 何使这 碰撞检测 算法 | 更新日期: 2023-09-27 18:21:32

好吧,所以我正在尝试制作一个使用此算法的游戏:http://www.codeproject.com/Articles/15573/2D-Polygon-Collision-Detection

但我需要它来计算所有可能与玩家对象碰撞的对象,而不仅仅是一次一个。我该怎么做?或者我需要使用另一种算法吗?因为如果你在两堵墙之间,这个会把你推到墙上。

如何使这种碰撞检测算法同时考虑所有对象

检测冲突和解决冲突是两个独立的步骤。你提到的算法可以检测碰撞,没有什么能阻止你使用它来检测与你感兴趣的所有对象的碰撞

解决碰撞是一个更有趣的过程,因为您需要决定每次碰撞的实际含义,即与箭头的碰撞和与墙的碰撞应该会产生不同的效果。解决多次碰撞(即,正如你所提到的"角落里的物体/狭窄的隧道")可能需要一些创造性——即,你可能不得不违反物理计算的规定,并在某种合理的状态下移动物体。

一件简单的事情可能会起作用,那就是通过缩小时间步长来避免多次碰撞。您仍然会遇到"角落里的对象"的情况,但频率较低,并且可能有简单的解决方法。