结合World-Object和Object-Object碰撞检测

时间:2013-01-08 16:14:33

标签: c++ collision-detection

我正在使用OpenGL在3D环境中开展游戏。我正在为大多数物体/世界碰撞实施扫掠椭圆体碰撞检测/响应系统,效果很好。

我遇到的问题是将该系统与Object-Object碰撞检测系统相结合。我在设计阶段试图解决的真正问题是,当看到可能会阻止或改变另一个物体运动的物体时(比如一些可以移动的板条箱,但当玩家遇到它时,它们就像“墙壁”一样。)

我想我必须做类似以下的事情:

  1. 找到对象的位移
  2. 找到物体与世界碰撞的最早时间(a)
  3. 找出物体与任何其他物体发生碰撞的最早时间(当然,在广泛阶段剔除)
  4. 沿着位移移动对象(a)或(b)中的较小位置并执行响应
  5. 迭代直到完全使用位移
  6. 这是对的吗?这似乎非常昂贵,因为我必须在每次迭代检查时检查每个可能的碰撞对象。

    另一个问题:推送其他对象的对象怎么样:

    例如,说一个箱子掉下来推一个玩家。我需要移动箱子直到它击中玩家,然后在完成箱子的移动之前对玩家进行整个碰撞检测。这看起来似乎也会变得非常昂贵,因为推动可能会导致另一次推动,等等。

    非常感谢任何指导。

0 个答案:

没有答案