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