沿对角栅栏导航

时间:2018-12-08 15:53:08

标签: matrix navigation 2d game-physics

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

Moving along diagonal fence or wall

1 个答案:

答案 0 :(得分:0)

每个人都在哪里? 我刚刚通过执行以下操作独自解决了这个问题。

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

如果增量X尚未为0,则对增量X尝试以0进行相同的移动。

如果被阻止,则将增量X放回,然后将增量Y设为0,然后重试。

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

这将允许沿着对角栅栏滑动。如果栅栏是X或Y对齐的,则显然不会使用此组件方法,但在这种情况下不需要使用此方法,因为几何不会阻塞您。 我尚未检查其他观察者(登录的另一个字符)的外观。当另一名球员在篱笆墙或墙壁上刷牙时,其X或Y动作始终为零时,它看上去可能会参差不齐并跳动起来。暂时可以!