2
在2D平台游戏中,如何确保玩家在斜坡上平稳移动?
我正在为2D平台游戏开发物理引擎。我正在使用分离轴定理进行碰撞检测。地面是由定向包围盒构成的,播放器是与轴线对齐的包围盒。(具体来说,我使用的是《实时碰撞检测》一书中的算法,该算法使用SAT对OBB执行扫掠碰撞检测)。我在碰撞响应中使用了一个很小的(接近零)恢复系数,以确保动态对象不会穿透环境。 该引擎通常运行良好,只是我担心可能会出现的一些极端情况。例如,在图中,A,B和C是地面。玩家沿着B向A左转。在我看来,由于不准确,玩家方块在继续向上和向左移动时可能会略低于方块B。因此,当到达A时,玩家的左下角可能会与A的右侧发生碰撞,这是不希望的(因为这样做的目的是使玩家在A的顶部上方平稳移动)。当玩家位于方框C的顶部,向B的左侧移动时,似乎会发生类似的问题-B的最极端点可能会与玩家的左侧发生碰撞,而不是玩家的左下角在上下滑动B以上 Box2D似乎通过存储其边缘形状的连接性信息来解决此问题,但是我不太确定它是如何使用此信息来解决问题的,并且在查看代码后,我并没有真正掌握它的作用。 任何建议将不胜感激。