碰撞检测的特例

问题描述 投票:0回答:1

如果我研究一维上两个球的碰撞检测。假设位置0中的第一个和每个帧的速度为5像素,第二个位于第3位,并且每帧的速度为-5像素,然后在下一帧中,第一个球将移动到位置5,第二个球将跳到位置-2。在这种情况下,它们之间没有重叠,因此碰撞检测将失败。我该如何处理这个案子?这里有一张图片供您解释:

graphics collision-detection physics
1个回答
0
投票

你可以估计和检查碰撞:

但在你的情况下,机芯是1D和线性的,所以你可以很容易地直接计算碰撞时间......

pos0 + vel0*t = pos1 + vel1*t
   0 +    5*t =    3 -    5*t
         10*t =    3
            t =    3/10
            t =    0.3

因此,在0.3帧之后发生碰撞...您还可以将对象的半径添加到帐户中以提高时间的准确性...如果您还需要碰撞位置,则:

pos0 + vel0*t = 0 + 5*0.3 = 1.5
pos1 + vel1*t = 3 - 5*0.3 = 1.5
© www.soinside.com 2019 - 2024. All rights reserved.