什么是基于时间的碰撞检测?
首先,了解一下,什么是基于帧的碰撞检测。基于帧的碰撞检测,就是说检测只在每一帧执行。但是不检测相邻帧之间的情况。因此,适合与,运动速度不快的物体的碰撞检测。
而基于时间的碰撞检测,考虑就要全面些。不管速度再大,也能检测得到。
以圆与圆的碰撞检测为例。
-
圆1:
x1 = xl1+xmov1*t y1 = yl1+ymov1*t
圆2:
x2 = xl2+xmov2*t y2 = yl2+ymov2*t
变量 xl1, yl1, xl2, yl2 表示两个圆在上一帧的位置情况。 t表示,从上一帧开始计时的时间,以帧为单位。
- 两圆之间的距离:
-
如果发生碰撞的话,那么就有一下等式:
将x1,y1,x2,y2,带入上面的式子。就可以解出t。
如果解出t, 有0<t<=1。那就说明,在上一帧与下一帧之间发生了碰撞。因为t的单位是帧。
t=2,说明要经过两帧才发生碰撞。就是这个意思。