简单语句
前言与确认
到目前为止,我们写的脚本已经能算数、能对话了。但仔细看会发现,脚本其实就是一行一行写下来的——每一行都是一种语句。这一节,我们来把最常用的几种语句认全。
先确认一下我们现有的工程文件夹结构:
root/
├─ emuera.config
├─ Emuera1824.exe
├─ CSV/
└─ ERB/
└─ System.erb其中,System.erb的代码为:
erb
@EventFirst
Print Hello World!
Quit语句是什么
语句是游戏脚本里的一个处理单位。EraBasic 有一条铁则:
一行,一句。
也就是说,你写的每一行(除了注释、空行、函数声明等特殊行),基本上就是一条语句。
赋值语句
最常见的语句是赋值:把右边的值装进左边的变量。
erb
@EventFirst
#Dim A = 0
#DimS S = ""
A = 100 ; 把 100 装进 A
S = "你好" ; 把 "你好" 装进 S
A = A + 1 ; 把 A+1 的结果再装回 A
PrintVL A
PrintS S
Quit赋值号 = 的左右两边类型必须一致:数值变量只能装数值,字符串变量只能装字符串。
命令语句
另一类语句是命令:让引擎去做一件事。比如 Print 是命令,Input 是命令,Quit 也是命令。
erb
@EventFirst
PrintL 这是命令语句
Quit命令后面可以跟参数(PrintL 后面的文字就是参数),也可以不跟(Quit 就没有参数)。
注释
以 ; 开头的行是注释,引擎会直接跳过。注释是写给人看的,不会影响程序运行:
erb
@EventFirst
; 这是一整行注释
#Dim A = 10 ; 也可以写在行末
PrintVL A
Quit养成写注释的习惯,未来的你会感谢现在的你。
标签与 GOTO
有时候我们需要跳到脚本的某个位置继续执行。给某一行起个名字,就叫标签,写起来是在名字前加 $;然后用 GOTO 跳过去:
erb
@EventFirst
PrintL 第一步
GOTO Skip
PrintL 第二步(会被跳过)
$Skip
PrintL 第三步
Quit输出:
第一步
第三步因为 GOTO Skip 让引擎直接跳到了 $Skip 那一行,所以“第二步”就被跳过了。
SIF:只执行下一行
SIF 是“Single IF”的缩写:如果条件成立,就执行下一行;否则跳过下一行。
erb
@EventFirst
#Dim A = 10
SIF A > 5
PrintL A 大于 5
SIF A > 100
PrintL A 大于 100
Quit输出:
A 大于 5第一行的条件 A > 5 成立,所以执行了下一行;第二行的条件 A > 100 不成立,所以下一行被跳过了。
SIF只会管紧挨着的下一行。别在它和下一行之间插入空行或注释,否则会出错。
小结
- EraBasic 中大体上一行一句;
- 赋值语句把值装进变量,左右类型要一致;
- 命令语句让引擎做事;
;开头的是注释,不会被执行;$标签+GOTO可以跳转;SIF是“条件成立才执行下一行”的简写。
下一步,我们来看看如何用 IF、REPEAT 等语句一次控制很多行:复合语句。