TC官方合作论坛
标题:
小地图大地图的换算
[打印本页]
作者:
wudongdonghehe
时间:
2012-11-12 22:18
标题:
小地图大地图的换算
小地图与屏幕的换算(或者是小地图与大地图的换算)
梦幻西游打宝图任务,是提供坐标的任务,让玩家去杀强盗。坐标给了,如何让脚本识别坐标。
识别坐标以后,就要去坐标那里杀强盗,一般都是通过小地图自动到达,然后pk强盗。
小弟不才,想要学习这个知识,还请大神们不吝赐教。
我研究的是2D游戏,梦幻西游。
作者:
陌上青衣。
时间:
2012-11-12 22:29
任务栏把 坐标的前面每次强盗任务都会在任务栏出现几个字做成字库,
下次就找出这几个字的坐标,然后坐标加偏移,识别出 强盗所在坐标, 小地图点击寻路,
这个兔子的帖子貌似有讲 寻路的,你翻翻
作者:
wudongdonghehe
时间:
2012-11-12 22:31
回复
2楼
陌上青衣。
的帖子
谢谢大神,兔子的帖子在哪能看到,还请指教。
作者:
c724211922
时间:
2012-11-12 22:32
这个我研究很长时间,这个方法适合倾斜坐标系(连偏移带压缩坐标轴偏移夹角60°)这个对于新手理解有点难。
功能 逻辑型 小地图智能移动(字符型 坐标地图x1,字符型 坐标地图y1,字符型 目标地图x1,字符型 目标地图y1)
//整型 a,b
//浮点型 c
//a=935-894
//b=127-106
//c=数学.开方(a*a+b*b)
//列表框.增加文本("列表框0",转换.浮点型转字符型(c))
//列表框.增加文本("列表框0",转换.浮点型转字符型(20/c))//比例尺算法
比例尺1=0.434167
比例尺2=0.414641
如果(目标地图x1!=""&&目标地图y1!=""&&坐标地图x1!=""&&坐标地图y1!="")
目标地图x=转换.字符型转浮点型(目标地图x1)
目标地图y=转换.字符型转浮点型(目标地图y1)
坐标地图x=转换.字符型转浮点型(坐标地图x1)
坐标地图y=转换.字符型转浮点型(坐标地图y1)
否则
键盘.按下(83)
辅助.等待(辅助.随机数(1000,2000))
键盘.弹起(83)
返回 假
如果结束
坐标实际x=929//人物箭头
坐标实际y=149//人物箭头
目标实际x=坐标实际x+(目标地图x-坐标地图x)/比例尺1*数学.开方(3.0)/2+(目标地图y-坐标地图y)/比例尺2*数学.开方(3.0)/2
目标实际y=坐标实际y+(目标地图x-坐标地图x)/比例尺1/2-(目标地图y-坐标地图y)/比例尺2/2
实际x=目标实际x
实际y=目标实际y
屏幕坐标x=转换.浮点型转整型(实际x)
//列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"屏幕x"+转换.整型转字符型(屏幕坐标x))
屏幕坐标y=转换.浮点型转整型(实际y)
//列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"屏幕y"+转换.整型转字符型(屏幕坐标y))
鼠标.移动(屏幕坐标x,屏幕坐标y)
辅助.等待(500)
鼠标.右键单击(1)
返回 真
功能结束
复制代码
作者:
c724211922
时间:
2012-11-12 22:37
上边是识别完坐标 把游戏坐标转换成屏幕坐标的 方法,要是下边在附上识别坐标。先利用多点找色建立坐标数字特征库。
字符型[][] 特征点,特征点1,特征点2
功能 逻辑型 初始化当前人物坐标数组()
特征点 = 字符型[10][2]
特征点[0][0] = "87D4DA"
特征点[0][1] = "-2|0|87D4DA,-3|0|75B8BD,-3|-2|87D4DA,-3|-3|87D4DA,-3|-3|87D4DA,-3|-5|87D4DA,-3|-7|87D4DA,-2|-9|6CAAAE,0|-8|87D4DA"
特征点[1][0] = "75B8BD"
特征点[1][1] = "1|0|87D4DA,1|-1|6CAAAE,2|-2|6CAAAE,2|-1|87D4DA,2|1|87D4DA,2|3|87D4DA,2|4|87D4DA,2|5|87D4DA,2|7|87D4DA,2|8|87D4DA"
特征点[2][0] = "87D4DA"
特征点[2][1] = "-2|0|87D4DA,-4|0|87D4DA,-5|0|517F83,-4|-2|517F83,-2|-3|7EC6CB,-1|-6|75B8BD,0|-8|87D4DA"
特征点[3][0] = "87D4DA"
特征点[3][1] = "0|-1|7EC6CB,2|-2|87D4DA,4|-1|75B8BD,4|1|87D4DA,4|2|639BA0,3|2|7EC6CB,2|2|3F6366,2|3|87D4DA,4|5|87D4DA,4|6|87D4DA,2|8|87D4DA"
特征点[4][0] = "87D4DA"
特征点[4][1] = "0|-2|7EC6CB,1|-3|87D4DA,2|-5|87D4DA,2|-6|75B8BD,3|-7|87D4DA,3|-4|87D4DA,3|-1|7EC6CB,3|1|87D4DA,3|3|75B8BD,1|0|7EC6CB,2|0|7EC6CB,4|0|87D4DA"
特征点[5][0] = "7EC6CB"
特征点[5][1] = "2|0|87D4DA,4|0|87D4DA,0|2|87D4DA,0|4|87D4DA,1|4|87D4DA,2|4|87D4DA,3|5|6CAAAE,4|6|87D4DA,4|8|87D4DA,3|9|87D4DA,1|10|87D4DA,0|9|87D4DA"
特征点[6][0] = "87D4DA"
特征点[6][1] = "-2|-2|87D4DA,-4|0|75B8BD,-4|3|87D4DA,-4|5|87D4DA,-2|8|87D4DA,0|7|87D4DA,0|5|87D4DA,0|3|87D4DA,-1|3|6CAAAE,-1|2|87D4DA,-2|2|87D4DA"
特征点[7][0] = "2D4749"
特征点[7][1] = "2|0|87D4DA,3|0|87D4DA,5|0|87D4DA,5|2|87D4DA,4|4|87D4DA,4|5|87D4DA,3|7|87D4DA,3|9|87D4DA"
特征点[8][0] = "87D4DA"
特征点[8][1] = "-1|0|87D4DA,-2|-1|7EC6CB,-2|-4|7EC6CB,0|-5|87D4DA,2|-3|87D4DA,2|-2|87D4DA,2|2|87D4DA,2|3|87D4DA,0|5|87D4DA"
特征点[9][0] = "87D4DA"
特征点[9][1] = "-2|-2|87D4DA,-2|-4|87D4DA,0|-6|87D4DA,1|-5|87D4DA,2|-4|87D4DA,2|0|87D4DA,2|1|87D4DA,1|2|75B8BD,0|3|517F83,0|4|87D4DA"
返回 真
功能结束
功能 字符型 识别X坐标()
识别坐标.初始化当前人物坐标数组()
字符型 坐标
整型 x,y,i,x1,y1
图像.多点找色(913,189,934,196,#365557,"1|0|365557,0|1|6CAAAE,1|1|639BA0,0|2|6CAAAE,1|2|3F6366,0|3|517F83",0.9,0,x1,y1)
如果(x1>0)
遍历(i=0;i<10;i=i+1)
如果(图像.多点找色(x1-25,y1-11,x1-18,y1+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],1.0,0,x,y))
坐标 = 坐标 + 转换.整型转字符型(i)
跳出
如果结束
遍历结束
遍历(i=0;i<10;i=i+1)
如果(图像.多点找色(x1-18,y1-11,x1-10,y1+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
坐标 = 坐标 + 转换.整型转字符型(i)
跳出
如果结束
遍历结束
遍历(i=0;i<10;i=i+1)
如果(图像.多点找色(x1-10,y1-11,x1-2,y1+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
坐标 = 坐标 + 转换.整型转字符型(i)
跳出
如果结束
遍历结束
列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"人物x"+坐标)
返回 坐标
否则
列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"逗号失败")
返回 ""
//辅助.消息框("识别人物坐标逗号失败")
如果结束
功能结束
功能 字符型 识别Y坐标()
识别坐标.初始化当前人物坐标数组()
字符型 坐标
整型 x,y,i,x2,y2
如果(图像.多点找色(913,189,934,196,#365557,"1|0|365557,0|1|6CAAAE,1|1|639BA0,0|2|6CAAAE,1|2|3F6366,0|3|517F83",0.9,0,x2,y2))
遍历(i=0;i<10;i=i+1)
如果(图像.多点找色(x2+14,y2-11,x2+22,y2+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
坐标 = 坐标 + 转换.整型转字符型(i)
跳出
如果结束
遍历结束
遍历(i=0;i<10;i=i+1)
如果(图像.多点找色(x2+22,y2-11,x2+30,y2+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
坐标 = 坐标 + 转换.整型转字符型(i)
跳出
如果结束
遍历结束
遍历(i=0;i<10;i=i+1)
如果(图像.多点找色(x2+30,y2-11,x2+38,y2+3,转换.字符型转整型(特征点[i][0],1),特征点[i][1],0.9,0,x,y))
坐标 = 坐标 + 转换.整型转字符型(i)
跳出
如果结束
遍历结束
列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"人物y"+坐标)
返回 坐标
否则
列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"逗号失败")
返回 ""
//辅助.消息框("识别人物坐标逗号失败")
如果结束
功能结束
复制代码
作者:
tclhs
时间:
2012-11-12 23:39
膜拜啊!!
作者:
jxwwdt
时间:
2012-11-13 09:22
呃呃
作者:
whx188868067
时间:
2012-11-13 09:40
喜欢
作者:
a8461959
时间:
2012-11-13 11:10
膜拜楼上的楼上的楼上的大神
作者:
wudongdonghehe
时间:
2012-11-13 13:01
你们这些人,要么比我学的时间长,要么跟我一样,都是小鸟,为啥平时不多问问大神呢,
作者:
wudongdonghehe
时间:
2012-11-13 13:04
回复
5楼
c724211922
的帖子
大神回答的真好,可惜我看不懂。
作者:
wudongdonghehe
时间:
2012-11-13 20:08
回复
4楼
c724211922
的帖子
大神,能不能给我发一段,识别任务提示坐标的代码,我学习一下。
作者:
c724211922
时间:
2012-11-14 01:16
回复
12楼
wudongdonghehe
的帖子
和我 发的识别人物坐标方法一样啊,看不明白你看看阿斌老师 yy视频的 鹿鼎记打怪那个。
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1