分享一个A星模块和源码
本帖最后由 phuai007 于 2026-8-7 14:38 编辑用火山有段时间了,做项目时,需要用到A星寻路,发现火山没有相关模块。于是让AI翻译了一个易语言的A星模块。
原作者链接:https://bbs.ijingyi.com/thread-14759324-1-1.html
易语言也在用他这个,现在翻译成火山模块了。
<火山程序 类型 = "通常" 版本 = 1 />
方法 _调试入口方法 <公开 注释 = "当使用火山DLL默认调试启动程序直接调试DLL时,本方法将在DLL加载后被自动调用."
注释 = "请将调试相关的代码置入本方法中,在编译DLL的发布版本时,本方法中的内容不会被加入.">
{
变量 A星 <类型 = A星算法类>
变量 起点 <类型 = 坐标点>
变量 终点 <类型 = 坐标点>
变量 ret <类型 = 逻辑型>
变量 局_屏蔽 <类型 = 对象数组类>
变量 返回数组 <类型 = 对象数组类>
变量 k <类型 = 整数>
变量 t <类型 = 长整数>
变量 retArr <类型 = 对象数组类>
// 地图必须要cmap格式,用 创建地图文件_位图() 生成
如果 (A星.加载地图_文件 ("D:\\项目\\火山项目\\test\\测试地图.cmap"))
{
起点.X = 38
起点.Y = 39
终点.X = 348
终点.Y = 199
t = 取启动时间 ()
A星.寻找路径 (起点, 终点, 返回数组, , , , 局_屏蔽)
调试输出 (取启动时间 () - t, "ms")
循环 (0, 返回数组.取成员数 (), k, 1)
{
变量 tmp <类型 = 坐标点>
tmp = A星.取路径坐标 (返回数组, k)
调试输出 (k, tmp.X, tmp.Y)
}
}
否则
{
调试输出 ("加载地图失败")
}
}
注意:它使用的地图文件,不是bmp格式的,用 创建地图文件_位图() 生成
源码网盘下载地址:
链接:https://pan.quark.cn/s/02ab1186756b?pwd=F4NN
提取码:F4NN
感谢分享! 火山有A星,没有用,只是下过,不记得作者了,还是谢谢分享 2oon 发表于 2026-7-15 20:57
火山有A星,没有用,只是下过,不记得作者了,还是谢谢分享
在现有官方的模块里面,我没找到呢,是不是隐藏在某个模块里面? 本帖最后由 2oon 于 2026-7-17 23:42 编辑
phuai007 发表于 2026-7-15 23:09
在现有官方的模块里面,我没找到呢,是不是隐藏在某个模块里面?
不知道是谁写的,开源差不多有一年了,给大佬看看有没帮助
页:
[1]