RTS游戏的寻路算法:群体移动时怎么绕开友军阻挡
RTS游戏的寻路算法:群体移动时如何绕开友军阻挡
参考:
https://www.zhihu.com/question/29885931
wq yang
这个函数:
https://github.com/spring/spring/blob/a2a84b654354e5da1f828b5fd7db280d90d0596d/rts/Sim/MoveTypes/ClassicGroundMoveType.cpp#L754
主要算法从这一行开始:https://github.com/spring/spring/blob/a2a84b654354e5da1f828b5fd7db280d90d0596d/rts/Sim/MoveTypes/ClassicGroundMoveType.cpp#L811
张鹏
这个可以参考recast中的做法,astar得到大致正确的路径,然后用next corner求下个goal点,然后移动的过程就是个steering behavior,可以使用任何动态避让算法。比如比较高效的RVO算法,这个从数学上可以推导是完全可避让的,只需要agent的位置 速度和半径就行。recast就是用的RVO。网上有现成的RVO C++ lib。难点在于如何控制agent的状态切换,以及修正路径,重新计算等,还是参考recast的crowd代码吧
开源算法库RVO2:
http://gamma.cs.unc.edu/RVO2/