碰撞和矩形/线交叉

时间:2012-11-17 16:41:48

标签: c# vector xna collision-detection rectangles

我正在为游戏进行碰撞检测,这些级别是从每个具有自己的边界框的块中随机生成的。我的碰撞检测是可以的,除非有时候,玩家船可以同时与2个或更多的碰撞碰撞,我需要找出它碰到的第一个。

我已经知道如果我发现船的边界框在其移动方向上的角落,然后在该角落(图中的红线)的船舶运动矢量的相反方向上绘制一条线,交叉点点那个最远的就在第一个方框上。 我只是不知道如何编程这个逻辑!

我必须与之合作

  • 相撞的边界框(矩形)列表
  • 船舶运动(Vector2)
  • 船舶边界框(Reactangle)

enter image description here

1 个答案:

答案 0 :(得分:0)

我的方法是:在船上添加另一组更小且更精确的边界框。如果发生冲突,则应该开始检查较小边界框的比例。 根据我的理解,许多游戏都是为了避免不必要的碰撞检查,但有一种方法可以在碰撞发生时更准确地确定碰撞。