当前位置: 首页 > news >正文

[按键手机安卓/IOS脚本插件开发] 按键插件调试与判断循环结构辅助工具

实现按键插件的核心原理
通过一个table类型的QMPlugin变量实现按键精灵调用Lua函数,例如

-- Lua代码
-- 实现两数相加求和
function QMPlugin.Add(a, b)
return a + b
end

将以上代码保存成.lua文件,例如test.lua后,放入按键精灵手机助手的plugin文件夹内。
再重启按键精灵手机助手或者刷新插件列表,即可看到自己写的test插件了。
在按键精灵中调用代码如下

//按键精灵代码
Import "test.lua" //导入插件Dim 结果 = test.Add(11, 22)
TracePrint 结果 //输出结果为33

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

local a = 1
if a > 0 then --判断a是否大于0, 注意不要随便大写!
print("a大于0")
end-- 带else的if结构
if a < 0 then --判断a是否小于0, 注意不要随便大写!
print("a小于0")
else
print("a不小于0")
endlocal b = 1
local c = 1
-- 带elseif的if结构, 与语法与按键类似, 也支持加else
if c == 0 then -- 相等符号与按键不一致, 这里是==, 注意别写错
print("c等于0")
elseif b ~= 0 then -- 不相等符号与按键不一致, 这里是~=, 注意别写错
print("c不等于0")
elseif a < 0 then -- 小于号<与按键语法一致
print("a小于0")
elseif a > 0 then -- 大于号>与按键语法一致
print("a大于0")
elseif b <= 0 then -- 小于或等于号<=与按键语法一致
print("b小于或等于0")
elseif b >= 0 then -- 大于或等于号>=与按键语法一致
print("b大于或等于0")
end-- and or not 运算符与按键精灵一致, 但是注意必须是小写
-- 除了false与nil是假外, 其他全部都是真
if (a == 1 and b == 1) or c ~= 1 then
print("条件成立")
end

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

local i = 1
while i < 10 do --当i小于10为真时, 进入循环
print(i)
i = i + 1
end
print(i)
-- 当i不小于等于10时, 跳出这个循环

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

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

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

-- 数值型for循环递增
for i = 1, 10 do -- 循环变量i的值从1到10, 每次递增1
print(i)
end-- 数值型for循环递减
for i = 10, 1, -1 do -- 循环变量i的值从10到1, 每次递减-1
print(i)
end-- 循环变量i无需用local定义, 作用域仅在for循环中, 离开则失效
-- 请勿在循环中修改循环变量的值, 否则可能会产生不可预知的结果-- 泛型for循环
local t = {"QQ"=345911220, "姓名"="紫猫老师"} --定义并赋值一个table变量
for k, v in pairs(t) do -- 遍历表 t 中的所有键值对, pairs是一个迭代函数
print(k .. "=" .. v) -- 字符串之间使用两个小数点 .. 连接起来, 类似于按键精灵中的&连接符
end

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

-- break例子
for i = 1, 10 do
if i == 5 then
break -- 当i等于5时, 跳出当前for循环, 等同于按键的exit for
end
end-- 定义一个标签名称为start
::start::
-- 执行一些代码
goto start -- 跳转到start的位置继续向下执行

 

 

 

http://www.lqws.cn/news/531343.html

相关文章:

  • Jenkins执行Jenkinsfile报错
  • 可用的.gitignore文件
  • LDO的自放电功能
  • UE Universal Camera 相机插件-限制镜头在区域内移动
  • 认识Jacobian
  • 数学:初步了解什么是线性代数?
  • 开发语言漫谈-R语言
  • 超实用AI工具分享——ViiTor AI视频配音功能教程(附图文)
  • LeVERB:利用潜视觉-语言指令进行人形机器人全身控制
  • Oracle数据库捕获造成死锁的SQL语句
  • SDL渲染RGB图像
  • 高通手机跑AI系列之——穿衣试装算法
  • YOLOv10tensorRT推理代码C++
  • 虚拟化测试工具Parasoft Virtualize的两大核心功能及应用
  • 如何写出优秀的单元测试?
  • 【附源码】旅游网站系统设计与实现+SpringBoot + Vue (前后端分离)
  • 设计模式 | 建造者模式
  • 【机器学习深度学习】线性代数
  • 提升开发思维的设计模式(下)
  • Apache 支持 HTTPS
  • 【Linux】软硬链接,动静态库
  • 流程管理整体章程性方案及流程中的各种操作的定义和说明
  • 2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(四)
  • 【机器学习深度学习】线性回归
  • SpringBoot 中使用 @Async 实现异步调用​
  • 详解零拷贝
  • IDEA + Spring Boot + javadoc 实例应用
  • MyBatis深度面试指南
  • MQTT 和 HTTP 有什么本质区别?
  • Lynx vs React Native vs Flutter 全面对比:三大跨端框架实测分析