-
关注Ta
-
- 注册时间 2014-10-29
- 最后登录 2016-05-06
-
- 发帖84
- 在线41小时
- 精华0
- DB768
- 威望0
- 保证金0
- 桃子0
- 鲜花0
- 鸡蛋0
-
访问TA的空间加好友用道具
|
安卓实战——制作天天酷跑脚本(2) 本文由按键学院提供技术支持 按键学院交流①群(1群已满):376122403 按键学院交流②群(2群):372671254 按键学院交流③群(3群):170084238 引用 在上一篇的院刊中,小编给大家带来的是天天酷跑脚本的所需要的准备工作,以及基础的找色代码。里面涉及到的内容都是一些比较基础,并且常用的知识。里面介绍的代码结构都是在之后编写安卓脚本常用的,希望对大家编写脚本有帮助。 今天就给大家带来实战的第二部分,今天就都是一些具体的代码啦{:5_130:}
[tr=YellowGreen] 游戏流程思路 在着手开始编写一个脚本的时候先熟悉游戏,理清脚本要做些什么,理清脚本的流程对于编写脚本很有帮助这就是游戏PK对战的流程了: 在编写脚本的时候就按照这个流程进行编写即可。 PS:流程图的作用不可小看,他可以帮助自己理清思路,分清楚不同的模块。一些新手在编写脚本的时候,有可能会越写越乱,到最后可能自己写了什么都不知道。这就是因为对于整体的流程没有很好的把握住导致的,所以在这里是建议新手同学们在编写脚本前先花点时间做个流程图出来,让自己能够知道自己需要做些什么事情。 [tr=YellowGreen] 代码部分 1、收集信息 在前一篇院刊中说了,安卓的脚本是需要把数据和主体代码分开,所以在开始的时候我们就收集下需要点击或者判断的颜色点阵信息。 在进入游戏对战的这个过程中需要收集一些按钮的信息: 还有需要找一个特征来识别是否已经进入了对战,我这里找到是小星星的标志: 还需要识别人物是否死亡,也就是对战是否结束。游戏在人物死亡后会弹出再来一局的提示,我们可以把这个作为特征 - 对战 = Array(41, 1074, 195, 1288, "BADBFE", "-89|-10|0E46C7,23|-14|E0FBFF,15|105|75EDFF,27|137|40B3FF")
- 世界对战 = Array(199, 1424, 355, 1694, "FBFFB3", "-17|5|9D5C1A,-74|46|FEE752,62|33|FFFFFF,-91|16|F8AA83")
- 入场 = Array(164, 439, 260, 527, "A2F5FA", "-26|1|114477,800|26|2F2DE7,536|284|C4325D,-142|-84|ECA944")
- 进入游戏 = Array(24, 601, 165, 705, "00C6FF", "17|13|1F3C48,-34|6|0563B7")
- 再来一局 = Array(257, 649, 355, 752, "2874CE", "23|3|EAF5FC,-8|303|1CEAFB")
- 返回 = Array(113,539,190,621,"EBF5F9","12|1|FFFFFF,217|7|4BCCF8,-98|13|4A79B8,247|-27|F2FFFF")
- 确认 = Array(82, 507, 209, 638, "1358B5", "-6|74|F0F8FF,-96|96|75879F,-20|118|235DAE,114|144|EF9415")
对于部分按钮因为位置都是固定的,并且出现的时机也是固定的,所以可以直接取他们的坐标点,不用费劲的去取色 - 开始游戏 = Array(116, 1616)
- 跳跃 = Array(169, 1735)
2、封装函数子程序 引用 在编写代码的时候需要养成一些好的习惯,可以把不同的步骤封装成不同的子程序,这样只要在需要的时候直接调用子程序即可,在后期维护和修改方面也可以更省力。 比如在进入对战之后需要单独的去循环判断人物是否死亡,甚至可以做的更智能一些,去判断是否出现了障碍,然后通过下滑来躲避障碍。所以我们可以把这部分单独封装成函数,在识别到进入游戏画面之后就调用这个函数,在识别到人物死亡后就跳出这个循环。 - Function 游戏
- Do
- If 找多点(再来一局, 1) = True Then
- TracePrint "再来一局"
- ElseIf 找多点(返回, 1) = True Then
- TracePrint "返回"
- Exit do
- Else
- 点击 跳跃
- Delay 300
- 点击 跳跃
- End If
- Delay 100
- Loop
- End Function
脚本中还有涉及到点击的操作,所以可以把点击的操作单独的封装成函数,这样只要我们直接把坐标数组传递进去,就可以直接进行点击的操作。 - Function 点击(数组)
- Dim arr
- arr = 数组
- Tap arr(0),arr(1)
- End Function
3、完整代码 - Function 对战积分
- Call 点击(切换模式)
- Delay 500
- Call 点击(经典模式)
- Do
- If 找多点(对战, 1) Then
- TracePrint "PK对战"
- ElseIf 找多点(世界对战, 1) Then
- TracePrint "点击世界对战"
- ElseIf 找多点(入场, 1) Then
- TracePrint "点击入场"
- Delay 1000
- Call 点击(开始游戏)
- ElseIf 找多点(进入游戏, 0) Then
- TracePrint "进入游戏"
- call 游戏()
- ElseIf 找多点(爱心不足, 1) Then
- TracePrint "爱心不足,脚本停止"
- ShowMessage "爱心不足,脚本停止"
- EndScript
- ElseIf 找多点(返回, 1) Then
- TracePrint "点击返回"
- ElseIf 找多点(确认, 1) Then
- TracePrint "点击确定"
- End If
- Delay 300
- Loop
- End Function
- Function 游戏
- Do
- If 找多点(再来一局, 1) = True Then
- TracePrint "再来一局"
- ElseIf 找多点(返回, 1) = True Then
- TracePrint "返回"
- Exit do
- Else
- 点击 跳跃
- Delay 300
- 点击 跳跃
- End If
- Delay 100
- Loop
- End Function
- Function 点击(数组)
- Dim arr
- arr = 数组
- Tap arr(0),arr(1)
- End Function
- Function 找多点(数组,模式)
- 找多点 = False
- Dim arr,intX,intY
- arr = 数组
- FindMultiColor arr(0), arr(1), arr(2), arr(3), arr(4), arr(5), 0, 0.9, intX, intY
- If intX > -1 Then
- 找多点 = True
- If 模式 = 1 Then
- Tap intX, intY
- End If
- End If
- End Function
[tr=YellowGreen] 后记 今天的内容主要就是介绍数据结构的实际应用方法,大家如果有什么疑问或者建议可以留言反馈给我。在下次将会给大家介绍下,如何让脚本能够在不同的分辨率下正常运行。 院刊目录http://bbs.anjian.com/thread-549014-1-1.html [td=50%] 按键精灵实战班开始报名啦![td=50%] 1、时间:7月1日——7月25日接受报名 2、时长:每周二、周四、周六 3、地点:实战班 4、项目准备:安装按键精灵2014,安装镇魔曲、按键精灵会员卡(报名会提供3个月)。 5、关于项目课程的安排:周一至周天白天可自行学习与实践,学院会提供为学员准备助教与老师进行解答,周二、周四、周六晚上8点开始授课,请各位学员到场学习。 6、学费费用:512(人民币) 7、本次实战课程全国招募66人,名额有限。
|