0

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

但是,当许多块相互交互时,这会变得令人困惑。

盒子碰撞

  • 黑色方块 - 玩家,移动
  • 红/蓝方块 - 块,静态

从这个例子中,玩家显然应该向上移动,但盒子各自有不同的视点

  • 蓝色框在 Y 轴上碰撞更多,所以黑框应该向左移动。如果您假装红色框不存在,您会更容易看到这一点
  • 红框在 X 轴上碰撞较多,所以黑框应该向上移动

我怎么知道哪个框是“正确的”?

4

1 回答 1

0

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

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

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

盒子碰撞

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

于 2018-06-10T02:42:10.047 回答