• 新浪微博:
  • 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:03-18

按键精灵安卓版
立即下载

软件版本:3.7.0
软件大小:46.2M
更新时间:03-02

按键精灵iOS版
立即下载

软件版本:1.7.7
软件大小:29.2M
更新时间:12-06

按键手机助手
立即下载

软件版本:3.7.7
软件大小:262M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[分享源码] [原创推荐]<伪后台找图函数>制作与应用(支持最小化窗口) [复制链接]

1#
本帖最后由 鬼谷子2015 于 2015-6-10 20:13 编辑

  找图功能是每个按键用户应用最多的功能之一,让程序后台找图更是制做游戏辅助的常用方式!

  然而通过截图找图方式调试应用时费时费力,且有时利用截图方式还不一定能达到想要的效果!

  这里结合自已的学习实践经验,分享一种不用第三方插件而达到与后台找图功能相同效果的方法,此方式与截图方式的后台找图功能相结合在鬼谷编写的代码中大量应用,且屡试不爽,在某些类型的游戏制作辅助时的应用效果,完全能和第三方后台找图插件相媲美(大家不介意俺来个<王婆卖瓜>吧!)

  鬼谷刚接触按键三月有余,算是个新手,以下技术如有不当之处,望各位同学指教,由于是刚刚接触学习按键,鬼谷尚未使用学习过任何除按键外的其它第三方插件,这并不影响本人制作自已的辅助并且还是可以后台执行的,和大家分享一下吧,觉得可以的,别忘了回复点赞哟!(由于本人文字水平有限,以下说明过程对某些同学怕是不易理解,如有表达不清之处,欢迎指出,本人再详述!)

一、技术思路:
实现方法是通过后台找点而实现与后台找图相似的功能,因此鬼谷称之为伪后台找图功能,实现这类功能的函数即伪后台找图函数。虽然大家也是通常这么做来完成找点操作的,但如能通过函数加定义参数的方式而将此类应用功能固定下来,每次调用时只要将图片点的特征数据传给函数,由函数自行处理分析该图片(点)是否存在,然后返回结果不是更方便使用且便于调试吗?具体思路分析如下:

1、游戏界面菜单按钮的分析:
  游戏的界面大多是由功能菜单、选项等操作按钮组成的,反复操控这些按钮即可实现游戏的任务操作,并且大部分操作都是重复性的。因此传统的辅助应用是将这些按钮,操作界面特定的选项图标截图后,在程序中通过找图,点击等一系列操作实现游戏的操控。这种方式;固然可行,由于系统的多样性,找图的效率会影响辅助的运行,同时后台找图还要借助第三方插件实现,调试工作量也不轻松!(按键刚刚推出了后台找图插件,并不能替代鬼谷的找图函数的所有功能,两种方式结合使用,会达到更完美的效果)!
实际上,上述提到的按钮、菜单的图象,仔细分析,都是有一定规律可寻的。沿着这些特征、规律,一定能找到一个点是这个菜单或按钮所独有的(至少在当前开启的界面中是独有的)。这个点就是我们要找到的关键点,鬼谷称之为“特征点”!有了特征点,就可以定位屏幕上出现的图片的精确位置了,其它的与这个特征点位置在一个界面菜单上的按键、按钮等要点击的东东则完全是相对于“特征点”的坐标偏移,想怎么定位,就怎么定位!另一方面鉴于游戏按钮,菜单的点的固定性,即任何游戏菜单界面都是统一的一种或几种风格,并且在屏幕中的分布无非是居中、靠左侧,靠右侧!靠下边,靠上边而已,不管游戏界面多大,分辨率是多少,按钮弹出的位置,或固定开启的位置相关于某些固定点大多是不会变化的!这样说大家可能不太理解!来个实图分析下吧!见下面几张图:(红框内的图形为目标查找图形)
图一:屏幕中间弹出式菜单0 
图二:左侧相对固定菜单0 
图三:右侧相对固定菜单0
图四:下方相对固定菜单0
图五:上方相对固定菜单0

2、函数的实现思路:
  分析完菜单特点,再谈谈函数的实现思路,既然在开头提到了传统的截图操作,我们就看看传统找图的函数实现方式,利用按键插件可以实现找图功能,具体代码及格式这里就不列了,简单例举下传统找图系列函数的常用功能:(实现这些功能的函数很常见,网上教程等随处可见,请找鬼谷以前发布的贴子的相关代码)
A. 找图(图片路径) B. 找多图(图片路径集) C. 找图点击(图片路径)
D. 等图(图片路径) E. 等多图(图片路径集) F. 等图点击(图片路径)

  这几种函数在具体应用过程中使用比较频繁(建议初学写代码的同学多多利用函数解决实际应用功能,好处当然是函数可以重复利用,减少开发工作量!),我们可以借用这种方式,将上述提到的后台找点的思路结合编写函数的方式固定下来,不是可以重复利用专门的函数而实现伪后台找图的功能了吗!说再详细点就是将图形、按钮、菜单的特征点传递给函数,由函数自行分析后台点的条件与我们预期的是否一至,如果一至函数返回找到点的坐标及查询结果(T或F)。因此这里要验证的图形只有一个特征点当然是不够的,所以要引进个“验证点”的数据来配合“特征点”实现上述功能!对,就是使用一个验证点,实际应用中,一个就足够用了!(按键提供的多点找图命令在这里显得啰唆了)。还是回头看看例图中的验证点位置吧,图中都标清楚了)大家思路跟上了吗!没跟上不要紧,还是举说明吧:看看上面提到的菜
单,按钮的特征点在哪里,验证点怎么定呢?
图一:屏幕中间弹出式菜单
图二:左侧相对固定菜单
图三:右侧相对固定菜单
图四:下方相对固定菜单
图五:上方相对固定菜单
(照例为了顶贴,还是“隐”吧!)
3、函数的功能:
***** 该内容需您回复才可浏览 *****
4、函数的参数:
***** 该内容需您回复才可浏览 *****
二、图片数据格式定义:
***** 该内容需您回复才可浏览 *****
三、使用格式:
***** 该内容需您回复才可浏览 *****
//以下为调用示例:
应用例句一: call 伪后台找图(确定图标_bmp)
TracePrint "得到的图片X坐标:"&找图_intX //如未找到返回-1
TracePrint "得到的图片Y坐标:"&找图_intY //如未找到返回-1

应用例句二: 返回值=伪后台找图(征收税金_bmp)
TracePrint 返回值 //如未找到返回 0或flase
TracePrint "得到的图片X坐标:"&找图_intX //如未找到返回-1
TracePrint "得到的图片Y坐标:"&找图_intY //如未找到返回-1
 
应用例句三:
 if 伪后台找图(征收税金_bmp)=1 and 伪后台找图(确定图标_bmp)=1 then
    Call Plugin.Bkgnd.MoveTo(Hwnd, 找图_intX+5 ,找图_inty+5 )   //后台移动
    Delay 50
    Call Plugin.Bkgnd.LeftClick(Hwnd, 找图_intX+5 ,找图_inty+5 )  //后台点击
    Delay 50
end if
注:只要定义好了“图片数据格式”的具体数据,其它的都交给函数处理吧,你的后台找图目标也就实现了!好不好用自已动手试试吧,不管你信不信,反正鬼谷用得很如意的,再来段完整的应用分享给大家吧!
***** 该内容需您回复才可浏览 *****
说到这里大家是不是急着要看函数代码啦,别急,后面就是,自已研究吧试试吧!用好了别忘了点赞啊!有高手可以帮我优化啊,急着发贴,函数没做纠错处理,自已用还行,也就没动,高手可以给加上纠错代码,便于同学们使用哟!

四、函数角本代码分享
***** 该内容需您回复才可浏览 *****


五、实战演示原码(待续)

最后感谢紫猫老师的网上入门教程将本人带入按键学堂,并能在此发贴分享学习心得!
搜索
搜索

附件:您需要登录才可以下载或查看附件。没有帐号? 注册

    已有1评分我要评分查看所有评分

    页游神之神曲II作者
    2#

    该用户帖子内容已被屏蔽

    3#

    学习一下

    承接制作脚本
    QQ:270620226
    4#

    好好看看好好学学

    5#

    看看。。。。学习

    6#

    后台找图函数>制作与应用(支持最

    7#

    谢谢分享

    http://bbs.anjian.com/showtopic-600038-1.aspx
    按键精灵安卓版v3.0支持安卓6.0系统啦~支持6.0,支持6.0,支持6.0啦~
    8#

    前来学习

    9#

    这个必须看一下

    10#

    很好很强大

    11#

    季季红咯人陪生人陪生说

    12#

    到底发生地方

    13#

    谢谢分享

    14#

    啊啊啊啊啊啊啊啊啊啊阿啊啊啊啊啊啊啊

    为了做脚本而游戏
    15#

    感謝大大分享

    16#

    谢谢

    17#

    谢谢

    18#

    该用户帖子内容已被屏蔽

    19#

    该用户帖子内容已被屏蔽

    20#

    该用户帖子内容已被屏蔽

    发新话题 回复该主题