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

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.2.9
软件大小:62.5M
更新时间:12-07

按键精灵iOS版
立即下载

软件版本:1.3.1
软件大小:29.2M
更新时间:09-29

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

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

登录 注册
返回列表 12345678» / 49
发新话题 回复该主题

[按键精灵安卓版] 【院刊】-【201507期】让你编写安卓脚本更加轻松便捷 [复制链接]

1#
本帖最后由 quitout 于 2015-7-24 16:35 编辑

分享最新最实用封装函数



本文按键学院提供技术支持



按键学院交流①群(1群已满):376122403

按键学院交流②群(2群):372671254

按键学院交流③群(3群):170084238

【按键学院】安卓课程(115768679)




一个结构好的脚本,往往都是多个模块组成的,由模块来组合而成的代码,结构流程清晰便于阅读,不管是给其他人参考还是自己日后的维护,都是有很大帮助的。
虽然在不同的游戏里需要编写不同功能的模块,但是还有一些模块是可以通用的,这些模块编写好之后可以放在其他的脚本里使用。这种模块就被称为“基础模块”

脚本模块化


一般情况下一个完整的脚本是有三大部分来组成的:主程序模块、功能模块、基础模块

主程序模块就是用来实现脚本整体功能的,或者是用来控制脚本要执行什么功能的部分。比如LOL脚本使用他进行人机匹配还是统治战场模式,这个部分就属于主程序模块。他只负责进行全局的操作,不管细节。

功能模块就是用来具体实现某个功能的部分,还是以LOL脚本为例,像是实现人机匹配的战斗,识别血量等等这种操作都是功能模块的作用。

基础模块就是最基本的一些操作了,比如点击、找图、找色等等功能。这种基础模块往往和游戏本身没有关联,不会受到游戏的限制,可以随时放到其他的脚本中使用。

大家在编写脚本的过程中不要小看基础模块。别以为找图找色命令也就2、3行代码,封装和不封装感觉差不多。当你在代码中频繁的使用这些代码之后,你就会发现没封装成函数的话会让代码整体看上去非常的乱,到最后可能你自己都不知道写了什么东西。
所以~~要多封装函数!要多封装函数!要多封装函数! (重要的事情要说三遍)

常用的基础模块


滑屏模块

在安卓上滑屏是个比较频繁的操作,所以很有必要把他封装成函数。用Swipe 命令进行滑屏的话,很容易出现惯性,就是滑动停止后屏幕还是处于滑动状态,很不好控制,所以我们可以封装下面的这个函数实现滑屏
  1. Function 滑屏(数组)
  2. Dim arr
  3. arr = 数组
  4. TouchDown arr(0), arr(1),1
  5. TouchMove arr(2), arr(3),1,200
  6. TouchUp 1
  7. Delay 200
  8. End Function
复制代码
使用范例:
  1. '把滑动的两个点记录到数组里方便调用
  2. 上滑 = Array(683, 945, 155, 974)
  3. Call 滑屏(上滑)
复制代码
点击模块

点击这种频繁的操作肯定是要封装的
  1. Function 点击(数组)
  2. Dim arr
  3. arr = 数组
  4. Tap 数组(0),数组(1)
  5. End Function
复制代码
使用范例:
  1. 按钮 = Array(169, 180)
  2. Call 点击(按钮)
复制代码
截屏到内存:

在找色或者找图之前先使用KeepCapture 截屏到内存,可以加快找图找色的速度,所以我们可以把这个封装起来,在找图色之前调用一次
  1. Function 截屏
  2. ReleaseCapture
  3. Delay 200
  4. KeepCapture
  5. End Function
复制代码
PS:这里为什么要先写 ReleaseCapture 这个释放截屏的命令呢? 这种写法可以利用到循环找图色结构当中。如果先写KeepCapture命令的话,那在循环结束后没有从内存信息中把图片释放掉,就会导致下一次的找图色失败,所以先释放一次,然后再截屏

使用范例:
  1. Do
  2. Call 截屏()
  3. FindPic 0, 0, 0, 0, "Attachment:1.png","000000",0, 0.8, intX, intY
  4. If intX >-1 then
  5. TracePrint "找到啦,坐标是"&intX&","&intY
  6. Else
  7. TracePrint "没找到"
  8. End If
  9. Loop
复制代码
通用找色模块

在安卓的实际编写过程中用的最多的就是多点找色,多点比色这样的命令了。所以可以把这些封装进去
  1. Function 通用找色(数组)
  2. 通用找色 = False
  3. Dim arr,intX,intY
  4. '多点找色
  5. If (IsNumeric(数组(0)) = True) and (IsNull(数组(5)) = False) Then
  6. FindMultiColor 数组(0), 数组(1), 数组(2), 数组(3), 数组(4), 数组(5), 0, 0.9, intX, intY
  7. If intX > -1 Then
  8. 通用找色 = True
  9. End If
  10. '多点比色
  11. ElseIf IsNull(数组(1)) = True
  12. If CmpColorEx(数组(0), 0.9) = 1 Then
  13. 通用找色 = True
  14. End If
  15. End If
  16. End Function
复制代码
这样的函数可以根据传入的数组参数不同,同时兼容多点找色或者多点比色

使用范例:
  1. '867,359,956,445 这个是多点找色的范围
  2. '按钮A是用多点找色命令,按钮B使用多点比色
  3. 按钮A = Array(867,359,956,445,"A54C08","0|9|E5B500,0|48|A54C08,2|76|FFFFFF,117|143|2E2BE6")
  4. 按钮B = Array("1039|1682|FFFDF3,1010|1685|FFF4B9,1032|1664|D67705,1005|1731|FD6E0A,990|1679|FFFFFB")

  5. If 通用找色(按钮A) = True Then
  6. TracePrint "多点找色找【按钮A】成功"
  7. ElseIf 通用找色(按钮B) = True Then
  8. TracePrint "多点比色找【按钮B】成功"
  9. End If
复制代码


院刊目录
showtopic.aspx?topicid=549014&forumpage=1&page=1



 



谢谢大家阅读,记得给小编送支花花 ! 顺手点个


[tr=rgb(143, 188, 143)]

按键精灵实战班开始报名啦!

安卓按键相关院刊

1、时间:7月1日——7月25日接受报名
2、时长:每周二、周四、周六
3、地点:实战班
4、项目准备:安装按键精灵2014,安装镇魔曲、按键精灵会员卡(报名会提供3个月)。
5、关于项目课程的安排:周一至周天白天可自行学习与实践,学院会提供为学员准备助教与老师进行解答,周二、周四、周六晚上8点开始授课,请各位学员到场学习。
6、学费费用:512(人民币)
7、本次实战课程全国招募66人,名额有限。

安卓按键精灵实战教学——天天酷跑(1)
showtopic.aspx?topicid=577597&forumpage=1&page=1

安卓实战教学第二波——天天酷跑(2)
showtopic.aspx?topicid=577909&forumpage=1&page=1

安卓实战——让脚本适应多种分辨率
showtopic.aspx?topicid=578339&forumpage=1&page=1
点我进入按键学院报名啦招生细节进群咨询招生办主任





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

    2#

    多学习一下

    3#


    4#

    牛逼

    5#

    可口可乐了,

    6#

    aspx?topicid=549014&forumpage=1&page=1

    7#

    面向对象思想111111

    8#

    ~~~~~~~~~~~~~~~~~~~

    9#

    能不能不要回复啊

    10#

    ddddddddddddddddddddddddddddddddd

    11#

    谢谢

    12#


    13#

    看看,来学习。

    14#

    多多学习

    15#

    kanyikan看一看

    16#

    ssssssssssssssssssssssss

    17#

    学习学习

    18#

    学下 谢谢

    19#

    谢谢分享

    20#

    先回复……,,,,,

    发新话题 回复该主题