首页 > 解决方案 > 沿对角栅栏导航

问题描述

我正在编写 MMORPG 游戏,但在服务器上的玩家移动时遇到了问题。我有一个 0.5 x 0.5 米单元格的 2D 矩阵作为玩家的通行图。我遇到的问题如下所示。如果玩家沿着(并且非常靠近)对角墙或栅栏移动,他就会被块状地图的几何形状所阻挡。如果栅栏/墙与世界对齐(垂直或水平),则不会发生这种情况。显而易见的解决方案是增加玩家半径,这样他就不能靠近栅栏,或者可能使单元格更小(这确实可以完成同样的事情)。但是,谁能想到另一种方法?我不能简单地说“嘿,这是对角线,所以我会从一个角落到另一个角落画一条假想的线,并确保玩家不能越过那条线”。这是行不通的,因为正如您在下面看到的那样,栅栏跑可以在这里和那里有一些水平或垂直的重复。有任何想法吗?提前致谢!

沿对角围栏或墙壁移动

标签: matrixnavigation2dgame-physics

解决方案


大家在哪里?我刚刚通过执行以下操作自行解决了这个问题。

如果角色的移动被阻止,服务器将首先尝试:

如果 delta X 尚未为 0,请尝试将 0 用于 delta X 的相同移动。

如果这被阻止,请将 delta X 放回去并尝试将 delta Y 设为 0,然后再试一次。

如果这也被阻止,则移动被阻止。

这将允许沿对角围栏滑动。如果栅栏是 X 或 Y 对齐的,显然这种组件方法不会发挥作用,但在这种情况下不需要它,因为几何图形不会阻挡你。我还没有检查过另一个观察者(另一个登录的角色)的样子。当他刷到栅栏或墙壁时,当他不断将他的 X 或 Y 运动归零时,它可能看起来非常锯齿和跳跃。这暂时有效!


推荐阅读