寻路逃亡
如您所知,当您想在从A点到B点的二维环境中找到最佳路径时,有很多解决方案。 但是,当对象位于点A并希望尽可能快地远离点B时,如何计算路径? 一些背景信息:我的游戏使用2d环境,该环境不是基于图块的,但具有浮点精度。运动是基于矢量的。通过将游戏世界划分为可行走或不可行走的矩形并在其角外构建图形来完成寻路。我已经有了使用Dijkstras算法工作的点之间的寻路。逃逸算法的用例是,在某些情况下,我的游戏中的角色应该将另一个角色视为危险,然后逃离。 简单的解决方案是将角色沿着威胁的相反方向沿向量方向移动,直到达到“安全”距离,或者角色到达一堵墙然后在恐惧中掩盖。 这种方法的问题在于,演员将被他们容易绕开的小障碍所阻挡。只要沿着墙壁移动不会使他们更接近他们可以做到的威胁,但是当他们首先避免障碍时,它将看起来更聪明: 我看到的另一个问题是地图几何图形的死角。在某些情况下,存在者必须在一条路径之间进行选择,该路径可以使它现在更快地走开,但最终会被困在死胡同中;或者,这是另一条路径,这意味着它起初不会远离危险(或甚至更近一点),但另一方面,它们将获得更大的长期回报,因为最终他们会走得更远。因此,越来越远的短期回报快必须以某种方式对价值越来越远的长期回报远。 对于演员应该接受的,接近较小威胁,摆脱较大威胁的情况,还存在另一个评级问题。但是完全忽略所有次要威胁也将是愚蠢的(这就是为什么此图中的参与者竭尽所能避免右上方区域的次要威胁): 是否有针对此问题的标准解决方案?