2012-11-17 66 views
1

我正在做的碰撞检测的一个游戏,水平随机从块生成每个都有自己的边界框。我的碰撞检测是确定的,除非有时候,玩家船可以同时碰撞2个或更多的方块,我需要确定它碰到的是哪一个。碰撞和矩形/线相交

我已经计算出如果我发现船舶边界框的角落在它的运动方向上,然后从该角落(图上的红线)的船舶运动矢量的相反方向画一条线,那个线路上的最远点将在第一个箱子命中。 我只是不知道如何编程该逻辑!

我有

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

enter image description here

回答

0

我的做法是:添加另一组的边框到市p更小,更敏捷。如果发生碰撞,您应该开始检查较小边界框的比例。 据我所知,很多游戏都是这样做的,以避免不必要的碰撞检查,但有办法在发生碰撞时更加精确地确定碰撞。

+0

是的,这是一个好主意!但如果我理解正确,我想我仍然会遇到这个小问题。如果有曾经在同一平面上2个边框它总是能够在同一时间 –

+0

2碰撞你可以有越来越多的鳞片,并有继续缩小,直到你只能有一个碰撞左侧。 – phil13131

+0

好的,这听起来相当先进 –