AStar+Jump Point Search 融合RVO

结合了商店中的一个RVO的插件

加上自己的修改就当是学习了。

动态添加非对齐网格障碍

添加障碍

寻路避障

寻路避障

核心思路是首先确定起始点和目标点的寻路,然后依次到达次要目标位置,最终到达指定位置
上面画的每一个箭头就是该物体需要先到达的次要目标,到达之后再去下一个目标。

astar和jps论坛已有相应的介绍,我就不再赘述了,不过还是贴一个寻路算法可视化网站

对于非对齐的网格,我加了一个驻留判断,如果未完成次要目标,并且停留超过一个时间阈值,就随机一个方向行进指定的时间,再寻路一次,避免移动物体卡在障碍里。

1赞

rov跟寻路是怎么结合的,有没有源码开放出来学习一下

我认为寻路就是全局性,当你点击目标时就计算好移动路径节点,而rvo只是在你移到每节点的过程中遇到到动态障碍物自动绕过。

假设物体要从a点到b点,我先进行寻路,生产一条可寻走的路线,但是走的途中碰到动态障碍物自动绕过了,那物体就偏移了预订好的线路到达c点,这时候应该需要重新进行c点到b点的寻路过程吧?那我就必须知道发生偏移然后偏移到哪个位置了。感觉我设想的流程是不是不太合理,因为同屏物体的时候规避的情况应该会非常频繁的发生,那我就必须一直去获取偏移点,进行重新寻路?

你生成的路经是一段一段的,从a->b->c->d->终点,然后移动过程中rvo只是避开,但还是会移动到路径点,rvo只要管物体的速度和移动方向,你玩过rts游戏就知道了,军队移动自动避开盟友后移动路径感觉会怪怪的,只有当你再点一次目的地才会看起来正常,因为你再点一次时路径又重算了。
如果按你说的每次都重算,那要rvo干吗?每遇到碰撞就重算寻路就好了

:rofl:商店地址 https://store.cocos.com/app/detail/5448