a星搜索算法组件

这是一个A星搜索算法在 Cocos Creator 上的简单实现。它作为一个组件,加在TiledMap上。

通过 TildMap 的一个图层,来读取障碍物的位置。

:beer: 项目托管在GitHub上,这里是仓库地址: GitHub stars

支持 4方向8方向 两种移动方式。

用的是现在最新的Cocos Creator v1.1.0-rc1

演示效果

可以在访问 http://luckytianyiyan.github.io/A-star/,玩耍这个演示。:beers:

最后

我并不太懂js,平时用都是写自己的web前端时候,用用jQuery。

如果你review我的代码,感觉有什么看不顺眼的,请在这里随意侮辱我: luckytianyiyan/A-star/issues

讲道理的话,如果你用心玩儿,会发现 Demo 里面小人走起来挺蠢的。

这里的实践方式挺粗糙,A star是被人讲烂了的算法,有很多已经被提出来的改进方案,可以自行查找。

地图大起来之后,A star的效率并不感人。

这里的A star没有应用任何的优化。比如,树结构对性能的提升还是很有帮助的,但是这里里面没写。

因为其实我是为了写Navigation Mesh。

23赞

顶一记,这个很实用!

正需要,谢谢分享

大神,1.2版本出问题了

楼主大大,提一点小的优化建议
1、如果连续点击鼠标,会出现卡顿的视觉效果
2、如果障碍层中没有限制边界就会报错

楼主,我发现了一个BUG,如图,从左侧走到右侧,它没有选择一条最短的路径,可以请楼主修复一下吗?

再比如说这里,它也选择了一条较远的路径。

留下言 以后肯定会用到

支持!建议 官方整个工具库,想这个都可以整合进入

这个绕路才远呢,帮助楼主测试

谢谢分享

这都是两年前的了,什么时候能够出个新的版本,能够适应2.0?

顶顶顶

顶。希望楼主的Navigation Mesh。能分享出来

问题可能出在这里

仔细看看这里的代码,我这里改过来了

还有如果你们是用2.0以上的版本出问题,是tileMap中的一些接口改了,把TiledLayer,获取瓦片地图的接口getTileAt变为getTiledTileAt 就可以了

1赞