phuai007 发表于 2026-7-15 19:53:13

分享一个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





诗木 发表于 2026-7-15 20:40:17

感谢分享!

2oon 发表于 2026-7-15 20:57:59

火山有A星,没有用,只是下过,不记得作者了,还是谢谢分享

phuai007 发表于 2026-7-15 23:09:48

2oon 发表于 2026-7-15 20:57
火山有A星,没有用,只是下过,不记得作者了,还是谢谢分享

在现有官方的模块里面,我没找到呢,是不是隐藏在某个模块里面?

2oon 发表于 2026-7-17 23:40:12

本帖最后由 2oon 于 2026-7-17 23:42 编辑

phuai007 发表于 2026-7-15 23:09
在现有官方的模块里面,我没找到呢,是不是隐藏在某个模块里面?
不知道是谁写的,开源差不多有一年了,给大佬看看有没帮助
页: [1]
查看完整版本: 分享一个A星模块和源码