• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[紫猫] [按键手机插件开发]03. 按键插件调试与判断循环结构 [复制链接]

1#
本系列教程目的是让大家掌握Lua基本语法与按键精灵手机版的插件开发制作,丰富按键精灵生态环境,让按键精灵变得更加强大!
本教程中部分知识点参考《Lua程序设计》书籍,有兴趣可以自行购买→传送门
按键精灵手机版插件的开发标准草案请阅读帖子:http://bbs.anjian.com/showtopic-697779-1.aspx
紫猫学院也有提供Lua插件开发的VIP教学服务,有兴趣请咨询紫猫老师QQ345911220或微信zimaoxy



实现按键插件的核心原理
通过一个table类型的QMPlugin变量实现按键精灵调用Lua函数,例如
  1. -- Lua代码
  2. -- 实现两数相加求和
  3. function QMPlugin.Add(a, b)
  4. return a + b
  5. end
复制代码
将以上代码保存成.lua文件,例如test.lua后,放入按键精灵手机助手的plugin文件夹内。
再重启按键精灵手机助手或者刷新插件列表,即可看到自己写的test插件了。
在按键精灵中调用代码如下
  1. //按键精灵代码
  2. Import "test.lua" //导入插件

  3. Dim 结果 = test.Add(11, 22)
  4. TracePrint 结果 //输出结果为33
复制代码
以上方式仅为按键插件实现的核心原理,具体开发标准建议参考 >> 按键精灵手机版插件的开发标准草案与简易教程。在后续的教程中,我们将采用统一标准开发插件。


if判断结构
Lua中的if也是判断条件的作用,与按键精灵非常类似,但再次强调,Lua是区分大小写的,所有自带命令关键字都是小写,千万别手贱把if写成If。另外,if的语法结构也稍有不同,详见下面例子

  1. local a = 1
  2. if a > 0 then --判断a是否大于0, 注意不要随便大写!
  3. print("a大于0")
  4. end

  5. -- 带else的if结构
  6. if a < 0 then --判断a是否小于0, 注意不要随便大写!
  7. print("a小于0")
  8. else
  9. print("a不小于0")
  10. end

  11. local b = 1
  12. local c = 1
  13. -- 带elseif的if结构, 与语法与按键类似, 也支持加else
  14. if c == 0 then -- 相等符号与按键不一致, 这里是==, 注意别写错
  15. print("c等于0")
  16. elseif b ~= 0 then -- 不相等符号与按键不一致, 这里是~=, 注意别写错
  17. print("c不等于0")
  18. elseif a < 0 then -- 小于号<与按键语法一致
  19. print("a小于0")
  20. elseif a > 0 then -- 大于号>与按键语法一致
  21. print("a大于0")
  22. elseif b <= 0 then -- 小于或等于号<=与按键语法一致
  23. print("b小于或等于0")
  24. elseif b >= 0 then -- 大于或等于号>=与按键语法一致
  25. print("b大于或等于0")
  26. end

  27. -- and or not 运算符与按键精灵一致, 但是注意必须是小写
  28. -- 除了false与nil是假外, 其他全部都是真
  29. if (a == 1 and b == 1) or c ~= 1 then
  30. print("条件成立")
  31. end
复制代码



while循环结构
while循环与按键语法类似,都是当条件为真时进入循环,具体语法格式例子如下:

  1. local i = 1
  2. while i < 10 do --当i小于10为真时, 进入循环
  3. print(i)
  4. i = i + 1
  5. end
  6. print(i)
  7. -- 当i不小于等于10时, 跳出这个循环
复制代码



repeat循环结构
repeat循环类似于按键语法中的do...loop until循环,当条件为真时结束循环,参考例子如下:

  1. local i = 10
  2. repeat -- 判断在后面, 所以这里必定会进入循环一次
  3. i = i - 1
  4. until i == 0 -- 当i的值为0时, 将会停止循环
复制代码



for循环结构
for循环结构与按键语法中的for循环有点类似,但是格式有所不同,参考下面例子:

  1. -- 数值型for循环递增
  2. for i = 1, 10 do -- 循环变量i的值从1到10, 每次递增1
  3. print(i)
  4. end

  5. -- 数值型for循环递减
  6. for i = 10, 1, -1 do -- 循环变量i的值从10到1, 每次递减-1
  7. print(i)
  8. end

  9. -- 循环变量i无需用local定义, 作用域仅在for循环中, 离开则失效
  10. -- 请勿在循环中修改循环变量的值, 否则可能会产生不可预知的结果

  11. -- 泛型for循环
  12. local t = {"QQ"=345911220, "姓名"="紫猫老师"} --定义并赋值一个table变量
  13. for k, v in pairs(t) do -- 遍历表 t 中的所有键值对, pairs是一个迭代函数
  14. print(k .. "=" .. v) -- 字符串之间使用两个小数点 .. 连接起来, 类似于按键精灵中的&连接符
  15. end
复制代码



控制循环命令
Lua提供了breakgoto来控制代码的执行走向。
break是用来跳出当前循环结构,不支持在循环外使用break,类似于按键精灵中的exit do,exit for。
goto命令与按键的goto类似,可以在同个作用域内跳转,使用两个冒号做标签名称。具体例子如下:

  1. -- break例子
  2. for i = 1, 10 do
  3. if i == 5 then
  4. break -- 当i等于5时, 跳出当前for循环, 等同于按键的exit for
  5. end
  6. end

  7. -- 定义一个标签名称为start
  8. ::start::
  9. -- 执行一些代码
  10. goto start -- 跳转到start的位置继续向下执行
复制代码


【紫猫编程学院】火热招生中

教学涉及按键精灵(电脑版与手机版)、网页、游戏、办公、插件等。

报名咨询QQ: 345911220 微信:zimaoxy

紫猫学院免费教程

加入交流QQ群: 7333555


2#

支持大佬

3#

666666666666666

4#

[按键手机插件开发]03. 按键插件调试与判断循环结构

5#

看不太懂啊

6#

瞧瞧

7#

学习插件

8#

1111111111111111111111111111

9#

按键插件调试与判断循环结构

发新话题 回复该主题