找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6180|回复: 1

[其他] 测试按键精灵手机版语法高亮

[复制链接]
  • 打卡等级:英雄豪杰

1087

主题

2132

回帖

4326

积分

院长

鲜花
8
猫粮
7085
QQ
发表于 2018-1-7 15:23:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[按键精灵] 纯文本查看 复制代码
//下载并使用紫猫安卓插件[url=https://zimaoxy.com/m/post/zm.about/]https://zimaoxy.com/m/post/zm.about/[/url]
Import "zm.luae"
zm.Init 

Dim bx, by, x1, y1, x2, y2, backcolor, bsim, scale
//取背景色的坐标90,318,可自由调整
bx = 90 : by = 318
//背景色相似度0.94,可自由调整
bsim = 0.94
//定义扫描与查找棋子的范围31,337,668,904,可自由调整
x1 = 31 : y1 = 337
x2 = 668 : y2 = 904
//距离除以时间的比值,也就是速度,可自由调整
scale = 0.41975

Dim pc1, pc2, p1, p2, t
//采用多点找色来实现查找棋子坐标,可自由调整
pc1 = "623938" : pc2 = "-18|-38|482E2F,8|-112|B28B94,17|-6|543638,-9|-71|5C3C43,-22|0|4F2D2E,6|-68|AF8790,-1|-124|4F373D,-4|-91|473B39,-2|-32|54343F"

Do
        KeepCapture 
        
        //使用超级多点找色来实现查找棋子坐标
        //参数"1-0.9-0.01"表示自动从0.9到1.0范围内选取最佳相似度,可自由调整
        //返回值在表p1中,可以用p1["x"], p1["y"]取出坐标
        //这里代码也可以替换成官方自带的多点找色命令
        p1 = zm.FindMultiColor(x1, y1, x2, y2, pc1, pc2, "显示", "1-0.9-0.01")
        
        //获取当前背景色
        backcolor = GetPixelColor(bx, by)
        
        //嵌套循环,让坐标从左到右,从上到下进行变化
        //每次坐标距离加10,提高对比速度
        p2 = Null
        For y = y1 To y2 Step 10
                For x = x1 To x2 Step 10
                        //这里52是指棋子图片的宽度,可自由调整
                        //目的是不扫描到棋子,因为棋子颜色与背景色也不同
                        //俩方块太近的时候,棋子可能会高于方块,导致出错,所以需要排除棋子范围
                        If p1 and not(p1["x"] + 52 >= x >= p1["x"] - 52) Then 
                                //对比指定坐标颜色是否与背景色相似
                                If CmpColor(x, y, backcolor, bsim) = -1 Then 
                                        //如果颜色不相似,则表示找到终点坐标了
                                        p2 = {"x":x, "y":y}
                                        Exit For
                                End If
                        End If
                Next
                If p2 Then 
                        Exit For
                End If
        Next
        
        //如果p1和p2都是有值的,表示起点与终点都获得了,可以计算时长了
        If p1 and p2 Then 
                //求出起点与终点的水平距离,然后除以速度,得到按住的时长
                t = Abs(p1["x"] - p2["x"]) / scale
                Touch 200, 200, t
        End If
        ReleaseCapture 
        
        //延时2秒钟,保证棋子落到目的地并且停留一段时间了
        Delay 2000
Loop 


楼主热帖
  • 打卡等级:无名新人

0

主题

18

回帖

18

积分

按键电脑&手机班学员

鲜花
0
猫粮
160
发表于 2018-1-29 10:42:49 | 显示全部楼层
前排学习+1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-9-17 03:15

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表