1. 开启输出日志
// 开启日志
Log.Open TracePrint "你好"TracePrint "世界"// 关闭日志
Log.Close
// 输出日志
TracePrint GetTempDir()// 当前脚本第4行:你好
// 当前脚本第6行:世界
2. 设置分辨率
在写脚本的时候,会针使用一个固定的屏幕分辨率来编写,但是当这个脚本在其它分辨率的手机上使用时就会无法正常运行,为此就需要提前声明脚本分辨率,这样脚本在运行时就会根据当前手机屏幕分辨率与脚本编写时声明的手机分辨率进行比例缩放,相关的坐标位置也会跟着比例做位移。
SetScreenScale 720 1280Tap 100,100// 上面点击的坐标在1080*1920的屏幕下会点击以下位置Tap 100 * (1080 / 720), 100 * (1920 / 1280)
3. 多点找色逻辑
// 定义找色点击方法
Function findColorClick()// 无限循环Do// 通过多色对比找到初始界面If CmpColorEx("123|389|D97700-101010,285|170|55351E-101010,59|27|461F02-101010,602|251|371803-101010",0.9) = 1 Then// 点击目标Tap 88, 884End If// 延时进行画面切换Delay 200// 校验点击目标后页面是否正确If CmpColorEx("222|67|F7F3F3-101010,409|150|F10B22-101010,371|397|F7F3F3-101010,254|1223|FFFFFF-101010",0.9) = 1 ThenTracePrint "打开了"// 退出循环 Exit Do End IfLoop
End Function// 调用点击方法
Call findColorClick()// 调用下一步方法
4. 多线程调用
利用多线程实现一个检测游戏脚本运行是否卡住的程序
// 设置共享变量
Thread.SetShareVar "checkThread", false
// 开启游戏子线程
Dim id = Thread.Start(gameSubThread)// 主程序循环检测
DoDelay 500// 获取共享变量的结果Dim checkResult = Thread.GetShareVar("checkThread")// 如果结果为真If checkResult = true Then // 退出子线程TracePrint "退出线程"Thread.Stop (id)Exit DoEnd If
Loop
// 声明游戏检测线程
Function gameSubThread()// 获取点的颜色Dim color1 = GetPixelColor(427,269)// 设置定时器Dim count = 0DoDelay 1000// 再次获取同一坐标的颜色Dim color2 = GetPixelColor(427,269)// 如果两个颜色相等If color1 = color2 Then // 计时器加1count = count + 1// 输出卡住的时间TracePrint "界面卡住了"&count&"秒"// 如果计数的时间大于10If count > 10 Then TracePrint "修改全局变量:检测线程"// 设置检测结果为trueThread.SetShareVar "checkThread", trueEnd IfElse TracePrint "界面发生变化了"// 清空计时器count = 0// 重新获取坐标颜色color1 = GetPixelColor(427, 269)End IfLoop
End Function