mimi_rice 发表于 2015-7-8 17:54:06

安卓实战教学第二波——天天酷跑(2)





安卓实战——制作天天酷跑脚本(2)
http://att.x2.hiapk.com/forum/201206/15/1552457l5crl95n1ngcl1k.gif
本文由按键学院提供技术支持

按键学院交流①群(1群已满):376122403按键学院交流②群(2群):372671254按键学院交流③群(3群):170084238


在上一篇的院刊中,小编给大家带来的是天天酷跑脚本的所需要的准备工作,以及基础的找色代码。里面涉及到的内容都是一些比较基础,并且常用的知识。里面介绍的代码结构都是在之后编写安卓脚本常用的,希望对大家编写脚本有帮助。
今天就给大家带来实战的第二部分,今天就都是一些具体的代码啦{:5_130:}

游戏流程思路


在着手开始编写一个脚本的时候先熟悉游戏,理清脚本要做些什么,理清脚本的流程对于编写脚本很有帮助
这就是游戏PK对战的流程了:


在编写脚本的时候就按照这个流程进行编写即可。

PS:流程图的作用不可小看,他可以帮助自己理清思路,分清楚不同的模块。一些新手在编写脚本的时候,有可能会越写越乱,到最后可能自己写了什么都不知道。这就是因为对于整体的流程没有很好的把握住导致的,所以在这里是建议新手同学们在编写脚本前先花点时间做个流程图出来,让自己能够知道自己需要做些什么事情。



代码部分


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|4BCXF8,-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


后记


今天的内容主要就是介绍数据结构的实际应用方法,大家如果有什么疑问或者建议可以留言反馈给我。在下次将会给大家介绍下,如何让脚本能够在不同的分辨率下正常运行。


院刊目录
http://bbs.anjian.com/thread-549014-1-1.html







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


按键精灵实战班开始报名啦!腾讯课堂视频课程
1、时间:7月1日——7月25日接受报名
2、时长:每周二、周四、周六
3、地点:实战班
4、项目准备:安装按键精灵2014,安装镇魔曲、按键精灵会员卡(报名会提供3个月)。
5、关于项目课程的安排:周一至周天白天可自行学习与实践,学院会提供为学员准备助教与老师进行解答,周二、周四、周六晚上8点开始授课,请各位学员到场学习。
6、学费费用:512(人民币)
7、本次实战课程全国招募66人,名额有限。
【招生对象】:零基础用户,快速学会按键精灵安卓版
【招生人数】:70人
【报名时间】:3/18——4/6
【学费】:128RMB
【学习日期】:1个月(2015.4.6-2015.4.27)
【上课时间】:周1、周3、周519:30--21:30
【上课导师】:梦幻小飞侠
【实战游戏】:[天天富翁]、[三国之刃]、[梦幻西游]、[天 龙 八 部]
点我进入按键学院报名啦招生细节进群咨询招生办主任




762794924 发表于 2015-7-8 22:22:17

我去 好牛逼啊

64117381 发表于 2015-7-8 23:42:22

我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!

284401856@qq.co 发表于 2015-7-9 07:55:42

我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!

woxihuan91 发表于 2015-7-9 08:27:50

我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!

╰堕落的青春 发表于 2015-7-15 03:25:52

面对楼主的帖子,我震惊得几乎不能动弹了,楼主那种裂纸欲出的大手笔.

1335229596 发表于 2015-7-15 03:25:59

顶楼主我是来水海币的水海币的水海币的

yr17126 发表于 2015-7-15 06:56:16

楼主,你的高尚情.太让人感动了。在现在这样一个物欲横流的金钱社会里,竟然还能见到楼主这样的性情中人,无疑是我这辈子最大的幸运。
页: [1]
查看完整版本: 安卓实战教学第二波——天天酷跑(2)