本帖最后由 兄弟工程师07 于 2014-1-3 17:11 编辑 前言
近年来不少网络游戏已经支持自动寻路,玩家只需要设定终点后,游戏人物即可自动寻路,但是碰到某些未自带自动寻路功能的游戏的时候怎么办呢?
我们就拿时下热门的剑灵来讲:
- 您所在的用户组无法下载或查看附件
游戏画面右上角有小地图,地图中灰白色箭头代表人物。人物在图中的A点,此时如果想去B点。应该怎么办呢?由于盒子的特殊性,它可供我们使用的现成功能有些少,好在盒子有个强大功能——找图。
单单靠一个找图功能就能解决很多问题了,如何利用找图来实现自动寻路呢?请看下面的分析:
自动寻路一般需要确定三个要素:下面我们逐个分析一下如何确定这三个要素
一、路线 一般脚本所要实现的都是较为固定的路线,比如像图中的A点到B点路线。所以在写脚本时需要先确定具体路线,从哪个位置到哪个位置。二、朝向确定人物朝向,这就需要判断小地图中小箭头的朝向了,有个简单的办法就是将小箭头上、下、左、右、左上、右上、左下、右下八个方向做成截图,再通过找图,设定匹配度的方法识别,通过此方法匹配大概方向。知道了朝向之后自然可以对角色进行调整,从而在转弯处校正角色方向。
三、位置因为是固定位置的寻路,所以人物每次的起点、途经转折点跟终点的地图位置都是固定的,知道了这些特殊位置都是固定的就好办了,直接存好途经这些位置时的右上角小地图的部分特征点截图,只要循环判断中有发现这些特征截图即可得知人物位置,从而通过控制人物朝向来改变行进方向。实际处理先在游戏中按快捷键“N”,将画面右上角小地图切换为不透明状态,减少游戏画面变化对于小地图的影响。
一、路线比如前言的图就是从A点到B点。 图中绿色痕迹就是角色所要行进的路线:- 您所在的用户组无法下载或查看附件
二、朝向在游戏中控制人物朝上、下、左、右、左上、右上、左下、右下八个不同方向,然后依次截图,抠出箭头,并做透明图处理。效果如下- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
- 您所在的用户组无法下载或查看附件
在实际游戏中使用找图命令找这些图,修改匹配度的方法识别,通过此方法匹配大概方向。当然,追求准确率的同学可以截图上360个方向的箭头图以供参考三、位置在实际游戏中手动操作人物沿着路线行走,并且在关键性的转向位置截下到达这些位置时的右上角地图:第一个转向位置截图:
- 您所在的用户组无法下载或查看附件
第二个转向位置截图:
- 您所在的用户组无法下载或查看附件
第三个转向位置截图:
- 您所在的用户组无法下载或查看附件
在上面三个位置中分别提取三个地图特征图片并做稍微处理:图1特征点
- 您所在的用户组无法下载或查看附件
图2特征点
- 您所在的用户组无法下载或查看附件
图3特征点
- 您所在的用户组无法下载或查看附件
当角色往第一个特征点行进时,循环在小地图中找图1,找到后使用转向代码
当角色往第二个特征点行进时,循环在小地图中找图2,找到后使用转向代码
当角色往第三个特征点行进时,循环在小地图中找图3, 找到后使用转向代码 在每个转弯处都如此判断,最后通过一次次的转向引导人物走到目的地PS.由于人物移动中右上角小地图像素会发生轻微变化,所以建议同一个特征图至少截两份像素变化后的图,以供找图时进行多图匹配判断
当然,本文只是众多网游自动寻路的思路之一