按键精灵中的日志、分辨率、找色逻辑、线程

1. 开启输出日志

// 开启日志
Log.Open 

TracePrint "你好"

TracePrint "世界"

// 关闭日志	
Log.Close 
// 输出日志
TracePrint GetTempDir()

// 当前脚本第4行:你好
// 当前脚本第6行:世界

2. 设置分辨率

在写脚本的时候,会针使用一个固定的屏幕分辨率来编写,但是当这个脚本在其它分辨率的手机上使用时就会无法正常运行,为此就需要提前声明脚本分辨率,这样脚本在运行时就会根据当前手机屏幕分辨率与脚本编写时声明的手机分辨率进行比例缩放,相关的坐标位置也会跟着比例做位移。

SetScreenScale 720 1280

Tap 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, 884
        End If
        // 延时进行画面切换
        Delay 200
        // 校验点击目标后页面是否正确
        If CmpColorEx("222|67|F7F3F3-101010,409|150|F10B22-101010,371|397|F7F3F3-101010,254|1223|FFFFFF-101010", 0.9) = 1 Then
            TracePrint "打开了"
            // 退出循环	
            Exit Do	
        End If
    Loop
End Function


// 调用点击方法
Call findColorClick()

// 调用下一步方法

4. 多线程调用

利用多线程实现一个检测游戏脚本运行是否卡住的程序

// 设置共享变量
Thread.SetShareVar "checkThread", false
// 开启游戏子线程
Dim id = Thread.Start(gameSubThread)

// 主程序循环检测
Do
    Delay 500
    // 获取共享变量的结果
    Dim checkResult = Thread.GetShareVar("checkThread")
    // 如果结果为真
    If checkResult = true Then 
        // 退出子线程
        TracePrint "退出线程"
        Thread.Stop (id)
        Exit Do
    End If
Loop

// 声明游戏检测线程
Function gameSubThread()
    // 获取点的颜色
    Dim color1 = GetPixelColor(427,269)
    // 设置定时器
    Dim count = 0
    Do
        Delay 1000
        // 再次获取同一坐标的颜色
        Dim color2 = GetPixelColor(427,269)
        // 如果两个颜色相等
        If color1 = color2 Then 
            // 计时器加1
            count = count + 1
            // 输出卡住的时间
            TracePrint "界面卡住了"&count&"秒"
            // 如果计数的时间大于10
            If count > 10 Then 
                TracePrint "修改全局变量:检测线程"
                // 设置检测结果为true
                Thread.SetShareVar "checkThread", true
            End If
        Else 
            TracePrint "界面发生变化了"
            // 清空计时器
            count = 0
            // 重新获取坐标颜色
            color1 = GetPixelColor(427, 269)
        End If
    Loop
End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aiguangyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值