开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1678|回复: 29
收起左侧

[易源码分享] 三角洲A星-节点寻路详解

[复制链接]
发表于 2025-9-24 19:45:45 | 显示全部楼层 |阅读模式   福建省漳州市
分享源码
界面截图: -
是否带模块: -
备注说明: -

    三角洲A-节点寻路详解
function 直冲功能(x2, y2, 地图名)
-- ========== 初始化阶段 ==========
-- 获取角色当前朝向角度(通过特定屏幕区域的颜色判断)
  -- 参数:(113,115) 到 (153,160) 的矩形区域,根据自身颜色判断角度
local 起始角度 = getSpecialAngle(113, 115, 153, 160, 自身颜色)
print(起始角度)
   
  -- 在地图上查找当前位置
-- 使用图像匹配技术在小地图区域(60,80,208,200)查找当前位置
local result = op.screen.findImageEx {
source = 地图名, -- 地图图像源
target = {60, 80, 208, 200}, -- 搜索区域(小地图范围)
gray = true, -- 转为灰度图提高匹配效率
sim = 0.1, -- 相似度阈值(0.1表示90%相似度)
method = "TM_CCOEFF_NORMED", -- 使用归一化相关系数匹配算法
scale = {1.0, 1.0}, -- 保持原始比例
rotation = {0, 0}, -- 不进行旋转匹配
}
print(result)
   
-- 获取当前坐标(从图像匹配结果中提取)
local 当前坐标x = result.zx
local 当前坐标y = result.zy
   
   -- 计算从当前位置到目标位置的角度
目标角度 = 计算游戏坐标角度(当前坐标x, 当前坐标y, x2, y2)
   
-- 如果当前朝向与目标角度相差超过4度,进行粗调校准
if math.abs(起始角度 - 目标角度) >= 4 then
校准转向(目标角度, 10) -- 快速转向到目标角度,精度10度
end
   
-- ========== 主循环:持续导航直到到达目标 ==========
u = 0 -- 状态标志:0=未开始移动,1=正在移动,3=已停止
   
while true do
   -- 重新获取当前位置(实时更新)
local result = op.screen.findImageEx {
source = 地图名,
target = {60, 80, 208, 200},
gray = true,
sim = 0.1,
method = "TM_CCOEFF_NORMED",
scale = {1.0, 1.0},
rotation = {0, 0},
}
print(result)
        
  -- 获取当前朝向角度
local 起始角度 = getSpecialAngle(113, 115, 153, 160, 自身颜色)
        
     -- 更新当前坐标
local 当前坐标x = result.zx
local 当前坐标y = result.zy
local 当前角度 = 起始角度
        
        -- 如果成功获取到坐标
if 当前坐标x ~= nil and 当前坐标y ~= nil then
-- 计算到目标的角度
local angle = 计算游戏坐标角度(当前坐标x, 当前坐标y, x2, y2)
            
       -- ===== 视角微调 =====
  -- 如果角度偏差在1-180度之间,进行慢速精确调整
-- 避免角度差接近180度时的反向旋转问题
if math.abs(起始角度 - angle) < 180 and math.abs(起始角度 - angle) > 1 then
慢速转视角(angle) -- 精确调整视角
end
            
      -- 计算到目标点的直线距离
距离 = 计算坐标距离(当前坐标x, 当前坐标y, x2, y2)
            
   -- ===== UI显示(实时显示导航信息)=====
-- 显示终点坐标(蓝色背景,白色文字,位置:209,692)
显示文本(文本框id1, "终点坐标:" .. x2 .. "," .. y2, 10, "0xFFFFFFFF", "0xAA0066FF", 209, 692)
-- 显示当前坐标(金色背景,白色文字,位置:48,692)
显示文本(文本框id, "当前坐标:" .. 当前坐标x .. "," .. 当前坐标y, 10, "0xFFFFFFFF", "0xFFFFD700", 48, 692)
-- 显示剩余距离(绿色背景,白色文字,位置:369,692)
显示文本(文本框id2, "距离:" .. 距离, 10, "0xFFFFFFFF", "0xFF00FF00", 369, 692)
            
  -- ===== 移动控制逻辑 =====
            
-- 远距离(>=10):开始移动
if 距离 >= 10 and u == 0 then
pb11() -- 执行移动命令(可能是按键或点击)
u = 1 -- 标记为正在移动状态
end
            
-- 中距离(<10):停止移动,准备精确定位
if 距离 < 10 and u == 1 then
stop() -- 停止移动
sleep(200) -- 延迟200毫秒,等待角色完全停止
u = 3 -- 标记为已停止状态
end
            
         -- 近距离(2-10):微调移动
if 距离 < 10 and 距离 >= 2 then
zl无延时(200) -- 执行短距离移动(可能是小步走)
end
            
-- 到达目标(<=4):结束导航
if 距离 <= 4 then
sleep(100) -- 短暂延迟确保稳定
break -- 退出循环,导航完成
end
end
end
end
工作原理解析:1. 坐标定位系统
● 通过图像识别在小地图上定位角色当前位置
● 使用模板匹配算法(TM_CCOEFF_NORMED)实现精确定位
2. 角度控制系统
● 通过颜色识别获取角色朝向
● 动态计算到目标点的角度
● 分级调整:粗调(>4度)和精调(1-4度)
3. 距离分级控制
● 远距离(≥10):全速前进
● 中距离(<10):减速并准备停止
● 近距离(2-10):微调移动
● 到达范围(≤4):停止并结束
4. 状态机管理
● 使用变量u管理移动状态
● 避免重复触发移动命令
● 确保移动过程的平滑性
5. 实时反馈
● 持续更新并显示当前坐标、目标坐标和剩余距离
● 便于调试和监控导航过程
6. 配套代码网盘链接
链接:https://pan.quark.cn/s/7e5949e08da2
提取码:3izW



三角洲A星节点寻路例子.zip

301.41 KB, 下载次数: 101, 下载积分: 精币 -2 枚

评分

参与人数 1好评 +1 精币 +1 收起 理由
perfectmyt + 1 + 1 配套代码网盘链接 失效了

查看全部评分


签到天数: 1 天

发表于 昨天 17:50 | 显示全部楼层   广东省深圳市
链接失效中。。。。
回复 支持 反对

使用道具 举报

结帖率:49% (19/39)

签到天数: 1 天

发表于 3 天前 | 显示全部楼层   广东省深圳市
配套代码网盘链接 失效
回复 支持 反对

使用道具 举报

签到天数: 3 天

发表于 2025-10-14 21:18:43 | 显示全部楼层   安徽省淮南市
很好啊,很有帮助
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2025-10-10 02:55:21 | 显示全部楼层   安徽省蚌埠市
支持666666666666666
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2025-10-8 01:37:27 | 显示全部楼层   四川省达州市
6666666666666666666666666666
回复 支持 反对

使用道具 举报

签到天数: 12 天

发表于 2025-10-4 09:20:09 | 显示全部楼层   河北省石家庄市
6. 配套代码网盘链接 失效了
回复 支持 反对

使用道具 举报

签到天数: 17 天

发表于 2025-10-3 10:59:29 | 显示全部楼层   陕西省渭南市
6. 配套代码网盘链接 失效了
回复 支持 反对

使用道具 举报

签到天数: 15 天

发表于 2025-10-1 16:05:43 | 显示全部楼层   四川省宜宾市
非常感谢大佬分享
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 1 天

发表于 2025-9-30 23:20:24 | 显示全部楼层   美国
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表