触动精灵论坛

查看: 13693|回复: 185

[零基础(持续更新)] 《零基础学触动》 第一期:Lua 基础语法

  [复制链接]
发表于 2017-7-25 10:49:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转触动精灵。

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

x
Lua 语法基础
视频教程
62, 80)">本系列视频提供了腾讯视频和爱奇艺在线资源,爱奇艺播单地址:
游客,如果您要查看本帖隐藏内容请回复

01 - 说在前面的废话
本期主要介绍了毫无编程基础的小白学习触动精灵脚本开发的正确流程。
爱奇艺视频:
02 - 注释和循环语句
本期主要讲解 Lua 基础语法中的注释和无线循环、for 循环等循环语句的用法。
爱奇艺视频:
03 - 运算和关键字
本期主要讲解 lua 语法基础中关于数值运算、逻辑运算、比较运算和关键字的内容。
爱奇艺视频:
04 - 变量类型和 require
本期主要讲解 lua 语法基础中的变量类型(数字型、文本型等)和 require 调用其他脚本文件或函数库的用法。
爱奇艺视频:

语法部分将结合代码示例来讲解,下面是代码实战部分深海水族馆的脚本源码。

  • require "TSLib"
  • gamebid = "com.idleif.abyssrium"
  • function unlock()--防锁屏
  •     flag = deviceIsLock()
  •     if flag ~= 0 then
  •         sysver = getOSVer()
  •         sysint = tonumber(string.sub(sysver, 1, 1)..string.sub(sysver, 2, 2))--转化为数字版本号
  •         if sysint == 10 then
  •             pressHomeKey(0)
  •         end
  •         unlockDevice()
  •     end
  • end

require
很多新手经常问,我的脚本有两个文件,怎么用 1 个调用另外一个呢?就是用 require 了。
这里需要注意的是,如果你要调用的脚本名字是 abc.lua, 那么一定要记得,只写脚本名字,不要加扩展名!!!
而文件名是字符串类型(关于这个下面再讲),需要加引号,双引号单引号都可以。
另外就是 Lua 是大小写敏感的语言,如果你写 require "ABC" 是肯定会报错的。

字符串
在 Lua 里最常见到的类型,特点就是必须用引号引起来,我们可以这么理解,字符串就是一串字符,是固定不变的。
“ABC” 就是 “ABC”,永远不会变。并且字符串是不能用来做加减乘除运算的,也不能用来和数值进行比较,你可以说 2 比 1 大,但 “2只小鸡”和“1匹马”是无从比较的。
其他常用的类型还有数值,非常好理解,就是可以用来做运算的数字。
1 + 1 = 2
需要说明的是,被引号引起来的数字就是字符串了哦~

变量
顾名思义,能够变化的量。
你可以写 a = 1
a = a +1
b = a + b
a 和 b 是根据对它的赋值在变化的。
在 Lua 里,一个等号 = 就是用来赋值的,下面我们会说到两个等号,一定要区别开来。
在上面的代码里,gamebid = "com.idleif.abyssrium",gamebid 是我自定义的变量,可以随便改(只要不用到 Lua 已占用的关键字就可以),我也可以写 abc = "com.idleif.abyssrium",当然接下来用到的 gamebid 地方都要改成 abc 才行。
"com.idleif.abyssrium" 就是字符串了,是一款叫做《深海水族馆》的游戏的 Bundle ID。
变量可以赋值的类型:字符串、数值、函数等。
27 行中 flag 这个变量就被赋值了一个函数,那么这个变量就会等于函数的返回值。
而当一个函数有多个返回值时,就可以给多个变量进行赋值了。

封装函数
function abc() ... end 就是封装义了一个名为 abc 的函数,在接下来的脚本中可以任意调用这个函数所包含的代码。
定义函数的好处就是让脚本更加精简,避免撰写重复代码,使逻辑结构清晰,便于后期维护。
想象一下,如果整个脚本中多处用到点击,而点击是由按下、间隔时间、抬起,至少三行代码组成的,封装成函数之后,就变成了 1 行代码。是不是清晰多了?
这里需要注意的是,封装函数一定要记得末尾加 end,函数名可以用中文但不能重复,不能占用 Lua 本身的关键字。

注释
两条短横线就代表后面的内容不对代码产生任何影响,只是单纯的作为备注使用,一般是用来辅助记录代码用户和变更的。
一旦代码前面加了注释标记,那么这行代码就被注释掉了。
多行代码注释 --[[ 要注释掉的内容 --]],注意中括号的位置。

if 判断语句
Lua 中最最常用的逻辑就是“假如(某条件)成立那么就(执行命令)结束”,用代码表示就是
if...then...end,翻译成中文很好理解吧。
更复杂一点的就是层层嵌套判断语句,比如,根据年龄判断一个人是不是小学生,假定小学生年龄为8周岁到14周岁,用代码写是这样的

  • if 8 < 年龄<14 then
  • 是小学生
  • else
  • 不是小学生
  • end
注意,每一个 if 都要有一个 end 来对应表示判断结束。
在这里 else 就是不符合判断条件之外的所有情况,不再做任何判断,直接执行命令。
当然上面的语法比较简单,如果我们想判断不是小学生的人是不是中学生呢。这里就要用到 elseif 了。

  • if 8 <= 年龄<=14 then
  • 是小学生
  • elseif 15 <= 年龄<=18 then
  • 是中学生
  • else
  • 既不是小学生也不是中学生
  • end

比较运算
上面的<= 、>= 以及截图中的 ~=和== 都是比较运算,分别是小于等于、大于等于、不等于和等于。
两个数值可以互相进行大小比较,返回值是数值的函数或者变量也可以和数字进行大小比较,而变量和字符串只能有等于和不等于,字符串是不能进行大小比较的。

回复

使用道具 举报

发表于 2017-7-25 14:24:58 | 显示全部楼层
666666666666666666666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2017-7-25 23:17:59 | 显示全部楼层
新手学习中。。。
回复 支持 反对

使用道具 举报

发表于 2017-7-26 14:35:37 | 显示全部楼层
6666666666666
回复 支持 反对

使用道具 举报

发表于 2017-7-26 15:10:20 | 显示全部楼层
新手学习中。。。
回复 支持 反对

使用道具 举报

发表于 2017-7-26 18:36:54 | 显示全部楼层
我来学习了
回复 支持 反对

使用道具 举报

发表于 2017-7-26 21:55:24 | 显示全部楼层
666666666666666666666666666666加油
回复 支持 反对

使用道具 举报

发表于 2017-7-26 22:33:16 | 显示全部楼层
初学者 好好学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

帖子推荐上一条 /3 下一条

小黑屋|手机版|Archiver|触动精灵 ( 京ICP备15002081号-2

GMT+8, 2018-8-18 08:42 , Processed in 0.128260 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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