物理学 - AABB 碰撞后如何调整?

Physics - How do you adjust after an AABB collision?

当玩家与方块碰撞时,我根据最小的轴变化移动他们,这是有道理的。

然而,当许多块相互交互时,这会变得混乱。

从这个例子来看,玩家显然应该向上移动,但是各个方块的视点不同

我怎么知道哪个框是 "correct"?

解决方案是为 X 和 Y 找到最近的块

在这种情况下,红色块离X轴较近,所以应该用来固定Y轴

此外,为防止方块将玩家移到角落,请添加宽限缓冲区。在下图中,紫色和绿色区域略小于播放器的大小。

如果一个方块在其中一个轴上最近,并且在该区域中,那么它应该用于碰撞