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/

 

猜你喜欢

转载自aigo.iteye.com/blog/2283972