检查一个矩形的哪一侧与另一侧碰撞
Check which side one rectangle collide with other
我正在制作一款有点像 Breakout 的游戏。考虑一个移动的小矩形与固定的大矩形碰撞的场景。
你看小矩形弹向哪个方向取决于它碰撞到大矩形的哪一侧(底部或左侧)。同一个碰撞矩形(红色),如何区分这两种情况?
你似乎已经用你自己的图表回答了这个问题。
完全弹性反弹不依赖于交叉点的性质。它们取决于运动的方向和接触点的切线(如果它们正在旋转,则还 angular 速度)。
对于平行于轴移动的轴对齐矩形,切线始终与运动方向成直角(90 度)。
即使运动不平行于轴(你没有说是否是这种情况,只是暗示),你只需要确定哪些表面首先接触。基于速度矢量和两个相交位移,这很容易做到。只需计算过去矩形在 x 轴和 y 轴上接触的两次。时间早点是你需要的。
我正在制作一款有点像 Breakout 的游戏。考虑一个移动的小矩形与固定的大矩形碰撞的场景。
你看小矩形弹向哪个方向取决于它碰撞到大矩形的哪一侧(底部或左侧)。同一个碰撞矩形(红色),如何区分这两种情况?
你似乎已经用你自己的图表回答了这个问题。
完全弹性反弹不依赖于交叉点的性质。它们取决于运动的方向和接触点的切线(如果它们正在旋转,则还 angular 速度)。
对于平行于轴移动的轴对齐矩形,切线始终与运动方向成直角(90 度)。
即使运动不平行于轴(你没有说是否是这种情况,只是暗示),你只需要确定哪些表面首先接触。基于速度矢量和两个相交位移,这很容易做到。只需计算过去矩形在 x 轴和 y 轴上接触的两次。时间早点是你需要的。