常用调试技巧系列初级篇

社区服务
高级搜索
猴岛论坛辅助工具常用调试技巧系列初级篇
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
0个回复

常用调试技巧系列初级篇

楼层直达
按键学院

ZxID:61232169

等级: 列兵
举报 图酷模式  只看楼主 使用道具 楼主   发表于: 2015-05-27 0
常用调试技巧系列初级篇


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


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


引用
不管是自己写代码还是学习他人代码总有用到调试功能的时候,特别对于一些初学按键的新手来说,往往好不容易写了一段调试语法无错的代码出来。实际运行过程中愣是发现不了自己写的脚本到底错在哪个环节了,如果此时知道一些代码调试上的技巧那么将节省很多时间,因此小编打算出一个系列的关于脚本调试的小技巧和方法,今天就跟大家介绍一下最简单也是比较常用的几种调试方法

看输出信息




小代码实例


比如下方的代码,思路是不断重复执行找色命令A在目标范围内找色,找到后则继续执行找色命令B,命令B找到颜色之后
修改canshu1变量为0,使循环条件不成立,从而退出循环。如果在调试此代码的时候发现循环一直在进行,如何判断是哪
个命令出了问题导致无法退出循环呢?

  1. Dim canshu1[/blockquote]
  2. canshu1 = 1
  3. Do
  4.     //找色命令A
  5.     FindColorEx 0,0,1024,768,"3AF7B9",0,0.9,intX,intY
  6.     If intX > 0 And intY > 0 Then
  7.         Delay 100
  8.         //找色命令B
  9.         FindColorEx 0,0,1024,768,"000DBA",0,0.9,intX,intY
  10.         If intX2 > 0 And intY2 > 0 Then
  11.             canshu1 = 0
  12.         End If
  13.     End If
  14.     Delay 200
  15. Loop While canshu1 = 1[blockquote]

方法一、使用“变量查看”功能配合单步调试功能
1.刚才的代码,在进入调试状态后,我们在变量查看窗口中从上到下依次设置两个找色命令的输出值:intX、intY、intX2、intY2。


2.点击单步或者步过按钮,多点几下会发现一个深SE块背景在编辑框内移动,没错,此色块就是指示代码运行到此处了。


3.当运行过命令A之后能看到intX跟intY的值变了。

从变量值来看可以得知命令A找色成功并且成功得到坐标265,14

4、继续点击单步或步过按钮,当运行过命令B之后发现intX2跟intY2的值也变了。


intX2跟intY2的值都为-1,说明命令B找色失败,从而可以对症下药,修改命令B内的找色范围、颜色值或者相似度来解决找不到颜色的问题。

方法二、加入输出语句输出信息

还是上面的代码,此时可以在相关判断语句中使用TracePrint 调试输出语句来提示语句运行结果:
  1. Dim canshu1[/blockquote]
  2. canshu1 = 1
  3. Do
  4.     //找色命令A
  5.     FindColorEx 0,0,1024,768,"3AF7B9",0,0.9,intX,intY
  6.     If intX > 0 And intY > 0 Then
  7.         TracePrint "命令A找到颜色"
  8.         Delay 100
  9.         //找色命令B
  10.         FindColorEx 0,0,1024,768,"000DBA",0,0.9,intX2,intY2
  11.         If intX2 > 0 And intY2 > 0 Then
  12.             TracePrint "命令B找到颜色"
  13.             canshu1 = 0
  14.         Else
  15.             TracePrint "命令B找色失败"
  16.         End If
  17.     Else
  18.         TracePrint "命令A找色失败"
  19.     End If
  20.     Delay 200
  21. Loop While canshu1 = 1
  22. Dim canshu1
  23. canshu1 = 1[blockquote]

运行上面代码之后

我们可以从调试信息中了解到找色命令A找到颜色,而找色命令B找色失败了,知道了这个就可以修改命令B内的参数,从而解决命令B找不到颜色的问题。

其他输出语句

注意:traceprint语句是在脚本内部(也就是做成小精灵后看不到输出的信息)输出,其他语句都是在脚本外部显示的,也就是做成小精灵后仍然能看到,其他语句一个个写的话比较麻烦,咱们以屏幕输出—ShowScrTXT命令为例,推荐把它封装成函数,需要的时候直接调用下就好了

  1. Function 写屏(内容)    Call Plugin.Msg.ShowScrTXT(0, 0, 1024, 300, 内容, "0000FF")  
  2. End function
  3. Call 写屏("执行找点A命令")[/blockquote]

后记

今天这期只是跟大家简单介绍了下利用输出信息来调试脚本,相信对新手会有一定帮助,下一期我们会跟大家分享下利用写入命令、日志等对脚本运行状态做记录的几种方法,另外调试时常出现的几种错误可以参考

【院刊】-【201408期】调试三天,气到吐血的【代码常见错误】

院刊总目录

[ 此帖被按键学院在2015-05-27 17:53重新编辑 ]
« 返回列表
发帖 回复