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

社区服务
高级搜索
猴岛论坛辅助工具安卓实战教学第二波——天天酷跑(2)
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
0个回复

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

楼层直达
mimi_rice

ZxID:55494225

等级: 上士
举报 图酷模式  只看楼主 使用道具 楼主   发表于: 2015-07-08 0





安卓实战——制作天天酷跑脚本(2)


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


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



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



[tr=YellowGreen]游戏流程思路

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



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

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




[tr=YellowGreen]代码部分


1、收集信息

在前一篇院刊中说了,安卓的脚本是需要把数据和主体代码分开,所以在开始的时候我们就收集下需要点击或者判断的颜色点阵信息。

在进入游戏对战的这个过程中需要收集一些按钮的信息:
        

还有需要找一个特征来识别是否已经进入了对战,我这里找到是小星星的标志:


还需要识别人物是否死亡,也就是对战是否结束。游戏在人物死亡后会弹出再来一局的提示,我们可以把这个作为特征



  1. 对战 = Array(41, 1074, 195, 1288, "BADBFE", "-89|-10|0E46C7,23|-14|E0FBFF,15|105|75EDFF,27|137|40B3FF")
  2. 世界对战 = Array(199, 1424, 355, 1694, "FBFFB3", "-17|5|9D5C1A,-74|46|FEE752,62|33|FFFFFF,-91|16|F8AA83")
  3. 入场 = Array(164, 439, 260, 527, "A2F5FA", "-26|1|114477,800|26|2F2DE7,536|284|C4325D,-142|-84|ECA944")
  4. 进入游戏 = Array(24, 601, 165, 705, "00C6FF", "17|13|1F3C48,-34|6|0563B7")
  5. 再来一局 = Array(257, 649, 355, 752, "2874CE", "23|3|EAF5FC,-8|303|1CEAFB")
  6. 返回 = Array(113,539,190,621,"EBF5F9","12|1|FFFFFF,217|7|4BCCF8,-98|13|4A79B8,247|-27|F2FFFF")
  7. 确认 = Array(82, 507, 209, 638, "1358B5", "-6|74|F0F8FF,-96|96|75879F,-20|118|235DAE,114|144|EF9415")


对于部分按钮因为位置都是固定的,并且出现的时机也是固定的,所以可以直接取他们的坐标点,不用费劲的去取色
  1. 开始游戏 = Array(116, 1616)
  2. 跳跃 = Array(169, 1735)


2、封装函数子程序

引用
在编写代码的时候需要养成一些好的习惯,可以把不同的步骤封装成不同的子程序,这样只要在需要的时候直接调用子程序即可,在后期维护和修改方面也可以更省力。


比如在进入对战之后需要单独的去循环判断人物是否死亡,甚至可以做的更智能一些,去判断是否出现了障碍,然后通过下滑来躲避障碍。所以我们可以把这部分单独封装成函数,在识别到进入游戏画面之后就调用这个函数,在识别到人物死亡后就跳出这个循环。

  1. Function 游戏
  2.     Do
  3.         If 找多点(再来一局, 1) = True Then
  4.             TracePrint "再来一局"
  5.         ElseIf 找多点(返回, 1) = True Then
  6.             TracePrint "返回"
  7.             Exit do
  8.         Else
  9.                 点击 跳跃
  10.             Delay 300
  11.             点击 跳跃
  12.         End If
  13.         Delay 100
  14.     Loop
  15. End Function


脚本中还有涉及到点击的操作,所以可以把点击的操作单独的封装成函数,这样只要我们直接把坐标数组传递进去,就可以直接进行点击的操作。
  1. Function 点击(数组)
  2.         Dim arr
  3.         arr = 数组
  4.         Tap arr(0),arr(1)
  5. End Function


3、完整代码

  1. Function 对战积分
  2.     Call  点击(切换模式)
  3.     Delay 500
  4.     Call  点击(经典模式)
  5.     Do
  6.         If 找多点(对战, 1) Then
  7.             TracePrint "PK对战"
  8.         ElseIf 找多点(世界对战, 1) Then
  9.             TracePrint "点击世界对战"
  10.         ElseIf 找多点(入场, 1) Then
  11.             TracePrint "点击入场"
  12.             Delay 1000
  13.             Call  点击(开始游戏)
  14.         ElseIf 找多点(进入游戏, 0) Then
  15.             TracePrint "进入游戏"
  16.             call 游戏()
  17.         ElseIf 找多点(爱心不足, 1) Then
  18.             TracePrint "爱心不足,脚本停止"
  19.             ShowMessage "爱心不足,脚本停止"
  20.             EndScript
  21.         ElseIf 找多点(返回, 1) Then
  22.             TracePrint "点击返回"
  23.         ElseIf 找多点(确认, 1) Then
  24.             TracePrint "点击确定"
  25.         End If        
  26.         Delay 300
  27.     Loop
  28. End Function
  29. Function 游戏
  30.     Do
  31.         If 找多点(再来一局, 1) = True Then
  32.             TracePrint "再来一局"
  33.         ElseIf 找多点(返回, 1) = True Then
  34.             TracePrint "返回"
  35.             Exit do
  36.         Else
  37.                 点击 跳跃
  38.             Delay 300
  39.             点击 跳跃
  40.         End If
  41.         Delay 100
  42.     Loop
  43. End Function
  44. Function 点击(数组)
  45.         Dim arr
  46.         arr = 数组
  47.         Tap arr(0),arr(1)
  48. End Function
  49. Function 找多点(数组,模式)
  50.         找多点 = False
  51.         Dim arr,intX,intY
  52.         arr = 数组
  53.         FindMultiColor arr(0), arr(1), arr(2), arr(3), arr(4), arr(5), 0, 0.9, intX, intY
  54.         If intX > -1 Then
  55.                 找多点 = True
  56.                 If 模式 = 1 Then
  57.                         Tap intX, intY
  58.                 End If
  59.         End If
  60. 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人,名额有限。

[tr=rgb(143, 188, 143)][td=2,1]
腾讯课堂视频课程
【招生对象】:零基础用户,快速学会按键精灵安卓版
【招生人数】:70人
【报名时间】:3/18——4/6
【学费】:128RMB
【学习日期】:1个月(2015.4.6-2015.4.27)
【上课时间】:周1、周3、周5  19:30--21:30
【上课导师】:梦幻小飞侠
【实战游戏】:[天天富翁]、[三国之刃]、[梦幻西游]、[天 龙 八 部]
点我进入按键学院报名啦招生细节进群咨询招生办主任


« 返回列表
发帖 回复