找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5760|回复: 3

[已回复] 使用了紫猫百度数字云识别,IF判断,CASE判断失效

[复制链接]

2

主题

2

回帖

6

积分

学前班

鲜花
0
猫粮
12
发表于 2018-12-8 00:09:36 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 wmvrcool 于 2018-12-8 00:11 编辑

脚本执行到关卡函数之后,里面判断ret的值,执行下一步,可是我无论使用if,还是case,都是“出错了”
请问这是怎么回事?
[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init  //初始化插件,只需执行一次

If Not zm.OcrBaiDuInit("PXuveaHShU8lI1joPnObnjjS", "8twOpgqURAsCO1STweEPrI3WArZIfWpm") Then
    TracePrint "初始化设置百度云识别失败"
    EndScript
End If

Dim intX,intY,ret,intX1,intY1
Call 趣味解密()

Function 趣味解密()

    Do
        FindMultiColor 0,0,0,0,"5ABEFF","24|-319|47B4F7,26|-300|2671D9,114|-270|32E0B5",0,0.9,intX,intY  //寻找打到第几关了
        If intX > -1 And intY > -1 Then
            TracePrint intX
            TracePrint intY
            ret = zm.OcrBaiDuNumbers(intX-28, intY-865, intX+48, intY-602)  //计算关卡,ret为关卡数
            If ret then
                TracePrint "数字", ret
            Else
                TracePrint "识别失败"
            End If
            Tap intX, intY
            Delay 1400
        elseIf CmpColorEx("120|612|5DBEFF,139|611|5BBEFF,157|620|5ABEFF,122|713|5ABEFF,156|724|4FB2FF", 0.9) = 1 Then
            TracePrint "点击确定"
            Delay 1000
            Tap 149, 650
            Delay 500
            Exit Do
        End If
        //没找到需要往下翻页
        Delay 500
        zm.Swipe 110, 1000, 448, 1000
        TracePrint "向下翻动"
        Delay 500
        
        FindMultiColor 96,1085,247,1184,"959695","-1|48|969698,45|5|949694,43|54|8C8A8C,123|13|979698,123|49|969696",0,0.9,intX1,intY1
        If intX1 > -1 And intY1 > -1 Then 
            TracePrint "未解锁关卡"
            ShowMessage "未解锁关卡"
            Delay 2000
            EndScript
        End If
    Loop
    Do
        if CmpColorEx("73|1281|FFFFFF,79|1277|FFFFFF,61|1274|FFFFFF,92|1271|FFFFFF",0.9) = 1 Then
            TracePrint "进入关卡"
            Exit Do
        End if        
    Loop
    Delay 1000
    Delay 1000
    Call 关卡()
  
End Function


Function 关卡()
    TracePrint "开始第"&ret&"关"
    Delay 1000
    Dim x = ret

    TracePrint x
    Do     
        Select Case x
        Case 1
            TracePrint “这是1”
        Case 2
            TracePrint “这是2”
        Case 3
            TracePrint “这是3”
        Case 4
            TracePrint “这是4”
        Case Else
            TracePrint "出错了"
            EndScript
        End Select
        Delay 500
        TracePrint "完成滑动"
        If CmpColorEx("686|629|FFF7E2,684|639|FFF5DE,720|652|5ECFFF", 0.9) = 1 Then 
            TracePrint "成功"
            Delay 500
            Tap 83, 670
        ElseIf CmpColorEx("596|54|B5ACA0,609|76|B5ACA0,620|84|B5ACA1,591|680|FFFFFF", 0.9) = 1 Then
            TracePrint "本关完成"
            Exit Do
        End If            
    Loop   
End Function
楼主热帖

2

主题

2

回帖

6

积分

学前班

鲜花
0
猫粮
12
 楼主| 发表于 2018-12-8 00:19:40 | 显示全部楼层
找到原因了,ret是字符串类型,需要转换成整数型
  • 打卡等级:武林至尊

1087

主题

2143

回帖

4337

积分

院长

鲜花
9
猫粮
7517
QQ
发表于 2018-12-10 08:57:43 | 显示全部楼层
所有的ocr识别返回都是字符串的

0

主题

6

回帖

6

积分

按键手机班学员

鲜花
0
猫粮
45
发表于 2019-11-21 10:21:42 | 显示全部楼层
case用双引号就可以了吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 10:08

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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