赛车和赛道碰撞问题
赛车可以在赛道内自由移动,但不能驶离赛道。因此,当赛车接近于赛道的边界时,可能发生赛车驶离赛道的情况下。游戏应该探测这个事件并有正确的碰撞响应。这个响应有两个部分组成:
l 赛车的移动有精确的速度矢量
l 赛道两边的边界有法线向量指向赛道
l 赛道两边的边界有两个“转角”点标记它的开始和结束。这些点是由实际的边线组成。
l 重复的碰撞检测遍及所有赛道
l 探测在赛道边界的碰撞是否可能发生:
获得从边界的一点当前赛车位置的向量
获得从同一个点到赛车移动到下一个的位置的向量
获得这些向量与单位法线向量进行点积(dot products)
如果点积的标记不同于另一边相应的向量。这就意味着在赛车移动后将会与赛道另一边发生碰撞
计算碰撞点并检查如果它是两个边界的“转角”时,如果那种情形可能,将会是有效的碰撞探测