-
关注Ta
-
- 注册时间 2014-10-29
- 最后登录 2016-05-06
-
- 发帖84
- 在线41小时
- 精华0
- DB768
- 威望0
- 保证金0
- 桃子0
- 鲜花0
- 鸡蛋0
-
访问TA的空间加好友用道具
|
分享最新最实用封装函数 本文由按键学院
提供技术支持 按键学院交流①群(1群已满):376122403
按键学院交流②群(2群)
:372671254 按键学
院交流③群(3群):170084238
【按键学院】安卓课程(115768679) 引用 一个结构好的脚本,往往都是多个模块组成的,由模块来组合而成的代码,结构流程清晰便
于阅读,不管是给其他人参考还是自己日后的维护,都是有很大帮助的。 虽然在不同的游戏里需要编写不同功能的模块,但是还有一些模块是可以通用的,这些模块编写好之
后可以放在其他的脚本里使用。这种模块就被称为“基础模块”
[tr=YellowGreen] 脚本模块化 一般情况下一个完整的脚本是有三大部分来组成的: 主程序模块、功能模块
、基础模块 引用 主程序模块就是用来实现脚本整体功能的,或者是用来控制脚本要执行什么功能的部分。比
如LOL脚本使用他进行人机匹配还是统治战场模式,这个部分就属于主程序模块。他只负责进行全局
的操作,不管细节。 引用 功能模块就是用来具体实现某个功能的部分,还是以LOL脚本为例,像是实现人机匹配的战斗
,识别血量等等这种操作都是功能模块的作用。 引用 基础模块就是最基本的一些操作了,比如点击、找图、找色等等功能。这种基础模块往往和
游戏本身没有关联,不会受到游戏的限制,可以随时放到其他的脚本中使用。 大家在编写脚本的过程中不要小看基础模块。别以为找图找色命令也就2、3行代码,封装和不封装感 觉差不多。当你在代码中频繁的使用这些代码之后,你就会发现没封装成函数的话会让代码整体看上 去非常的乱,到最后可能你自己都不知道写了什么东西。 所以~~ 要多封装函数!要多封装函数!要多封装函数! (重要的事情要说三遍) [tr=YellowGreen] 常用的基础模块 滑屏模块 在安卓上滑屏是个比较频繁的操作,所以很有必要把他封装成函数。用Swipe 命令进行滑屏的话, 很容易出现惯性,就是滑动停止后屏幕还是处于滑动状态,很不好控制,所以我们可以封装下面的这 个函数实现滑屏 - Function 滑屏(数组)
- Dim arr
- arr = 数组
- TouchDown arr(0), arr(1),1
- TouchMove arr(2), arr(3),1,200
- TouchUp 1
- Delay 200
- End Function
使用范例: - '把滑动的两个点记录到数组里方便调用
- 上滑 = Array(683, 945, 155, 974)
- Call 滑屏(上滑)
点击模块 点击这种频繁的操作肯定是要封装的 - Function 点击(数组)
- Dim arr
- arr = 数组
- Tap 数组(0),数组(1)
- End Function
使用范例: - 按钮 = Array(169, 180)
- Call 点击(按钮)
截屏到内存: 在找色或者找图之前先使用KeepCapture 截屏到内存,可以加快找图找色的速度,所以我们可以把 这个封装起来,在找图色之前调用一次 - Function 截屏
- ReleaseCapture
- Delay 200
- KeepCapture
- End Function
PS:这里为什么要先写 ReleaseCapture 这个释放截屏的命令呢? 这种写法可以利用到循环找图色 结构当中。如果先写KeepCapture命令的话,那在循环结束后没有从内存信息中把图片释放掉,就会 导致下一次的找图色失败,所以先释放一次,然后再截屏 使用范例: - Do
- Call 截屏()
- FindPic 0, 0, 0, 0, "Attachment:1.png","000000",0, 0.8, intX, intY
- If intX >-1 then
- TracePrint "找到啦,坐标是"&intX&","&intY
- Else
- TracePrint "没找到"
- End If
- Loop
通用找色模块 在安卓的实际编写过程中用的最多的就是多点找色,多点比色这样的命令了。所以可以把这些封装进 去 - Function 通用找色(数组)
- 通用找色 = False
- Dim arr,intX,intY
- '多点找色
- If (IsNumeric(数组(0)) = True) and (IsNull(数组(5)) = False) Then
- FindMultiColor 数组(0), 数组(1), 数组(2), 数组(3), 数组(4), 数组(5), 0, 0.9, intX, intY
- If intX > -1 Then
- 通用找色 = True
- End If
- '多点比色
- ElseIf IsNull(数组(1)) = True
- If CmpColorEx(数组(0), 0.9) = 1 Then
- 通用找色 = True
- End If
- End If
- End Function
这样的函数可以根据传入的数组参数不同,同时兼容多点找色或者多点比色 使用范例: - '867,359,956,445 这个是多点找色的范围
- '按钮A是用多点找色命令,按钮B使用多点比色
- 按钮A = Array(867,359,956,445,"A54C08","0|9|E5B500,0|48|A54C08,2|76|FFFFFF,117|143|
- 2E2BE6")
- 按钮B = Array("1039|1682|FFFDF3,1010|1685|FFF4B9,1032|1664|D67705,1005|1731|
- FD6E0A,990|1679|FFFFFB")
- If 通用找色(按钮A) = True Then
- TracePrint "多点找色找【按钮A】成功"
- ElseIf 通用找色(按钮B) = True Then
- TracePrint "多点比色找【按钮B】成功"
- End If
[ 此帖被mimi_rice在2015-07-24 17:41重新编辑 ]
|