我正在写一个MMORPG游戏,我在服务器上遇到了玩家移动的问题。我有一个0.5 x 0.5米单元的2D矩阵,作为玩家的感应图。下面描述了我遇到的问题。如果玩家沿着对角墙或栅栏移动(并且非常接近),他就会被块状地图的几何形状所阻挡。如果栅栏/墙与世界对齐(垂直或水平),则不会发生这种情况。一个显而易见的解决方案是增加玩家的半径,这样他就不能离栅栏太近了,或者可能使单元更小(这将真正完成相同的事情)。但是,有没有人能想到另一种方法?我不能简单地说“嘿,这是对角线,所以我会从一个角到另一个角画一条假想线,并确保玩家不会越过这条线”。这是行不通的,因为正如你在下面看到的,栅栏跑可能会有一些水平或垂直的
我正在尝试使用MonoGame (使用XNA的框架)为我的大学项目创建一个2D游戏,并且在两个重叠的矩形和玩家的'Hitbox‘矩形之间的碰撞方面遇到了很多麻烦。如果他们沿着一个墙矩形对角线移动,当遇到另一个没有阻碍的垂直墙矩形时,玩家将停止(这不是预期的结果)。 当玩家走进Wall时,player类的CollisionHandler方法被调用,碰撞的矩形以及枚举端( Wall本质上检查冲突的方式)被提供给参数。该方法有一些条件,然后改变球员的位置。这是它的代码: public void CollisionHandler(Rectangle Wall, Side TestSide)