马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这个用法真没有必要用的上录制视频,就用发帖替代吧
首先要会用阿基米德螺旋线,简单的讲,就是画一个向外扩散的曲线,通过这种方法进行扫描,获取想要的信息
阿基米德螺旋线的用途多用在后台,获取鼠标形状,或者通过鼠标放到某个地方显示一些有用的信息,当然后台能用的,前台也可以用
怎么升级这个螺旋线?
我们从平时的经验中已经知道,提高大漠找图速度,有两种方法
一,增加模糊度,尽量用0.9,0.8,如果再低的话,速度就会大幅下降
二,缩小找图范围100*100的区域,和10*10的区域,很明显,后者是前者的1/100.相应的,速度也会大幅提高.
用法介绍:
我要说的这种方法,用在后台找鼠标形状,变相的获取"鼠标特征码"
- 功能 逻辑型 阿基米德螺旋线扫描法(int moushap)
- //***p0为初始极径
- int p0 = 1 // 这个的值是控制初始的内圈大小,值越大,内圈越大
- int mag = 2 //放大倍数,这里也可以根据情况做调整
- int a=3 //阿基米德螺旋线系数
- double pi = 3.1415926
- double r,t
- ////画线的起始点坐标(startx,starty)
- // 表示的是要从那一点开始为基准点,逐渐向外扫描
- int startx=500,starty=300
- int endx,endy
- t=pi/2
- int i=0
- ///////移动到起点
- mouse.mousemove(startx,convert.doubletoint(starty+mag*(p0+a*t)))
- help.sleep(2)
- // 按下鼠标左键开始准备画线。具体在游戏里使用的时候,这句要去掉
- // 因为这里是要在画板里画线看执行效果才加的鼠标按下命令
- int w
- while(i<2000) // 这里表示一共执行3000次。 具体要执行多少次。根据不同情况调整
- r = p0+a*t //表示的是圆的半径
- // 计算鼠标移动的下一点坐标位置
- endx = startx+convert.doubletoint(mag*r*math.cos(t))
- endy = starty+convert.doubletoint(mag*r*math.sin(t))
- // t的增加值越大,跨的角度就越大。这个值的大小,可以自我调整达到理想状态
- // 比如增加量可以用以下的值 0.02 0.03 0.05 0.07 0.08 0.1 ……
- // 值越大,跨的角度越大,误差越大,但是消耗的时间短
- // 值越小,跨的角度越小,误差越小,但是消耗的时间长
- t = t + 0.03 // t = t + 0.05
- // 鼠标移动到下一点的位置,完成一次画线操作
- mouse.mousemove(endx,endy)
- // 此处的延时可以根据情况是否添加。
- help.sleep(2)
- 整型 目标x,目标y
- dm.FindPic(0,0,2000,2000,"图片.bmp","102030",0.8,0,目标x,目标y)
- 如果(目标x>0)
- 跳出
- 如果结束
- i = i + 1
- endwhile
- 返回 假
- 功能结束
复制代码 整型 目标x,目标y
dm.FindPic(0,0,2000,2000,"图片.bmp","102030",0.8,0,目标x,目标y)
如果(目标x>0)
跳出
如果结束
红色代码,为我们平常所用到的找图,一般都会搜索整个游戏窗口,这样就会大大的浪费资源.
我们只要对这个代码稍加修改,就能大大提高找图效率
呃,老规矩,代码,回复可见,不会的在这个板块发帖,我会尽快回复.
下一次,要讲的是,在没有自动寻路,但是有坐标提示的游戏里,如何通过大漠进行精准的移动
|