From: https://github.com/GarageGames/Torque2D/wiki/TorqueScript-Syntax
就像大多数编程语言一样,TorqueScript也有一些明确的语法需要遵守,该语言的容错性强,易于调试,不像C++这种低级语言一样要求严格.
编写并观察第一个脚本:
// 创建一个局部变量 %testVariable = 3;
从上面的两行脚本共遵循了三种最简单的规则:
1: 分号结尾
2: 适当的使用空格(便于观看,良好的代码风格是必要的)
3: 注释( 再彪悍的代码也需要注释)
每两句代码之间需要有分号隔离,最好是分号+换行,不然Torque会作为一句脚本对待,并产生错误在调试控制台输出错误警告,比如:
%testVariable = 3 %anotherVariable = 4;
上面的写法,编译器会将其视为:
%testVariable = 3%anotherVariable = 4;
这显然不是我们希望的结果.哪种不使用分号分隔的多行代码是支持的,但是前提是多行代码是用来完成一个单一的目的.比如:
if( %testVariable == 4 ) echo( "Equal!" );
先不去关心条件语句和输出命令,重点看第一行最后并没有分号结束,最简单的一种解释:代码告诉编译器"先阅读第一行代码,如果满足条件再读取第二行代码",
换一种说话,就是在分号之间是执行一整套相关的运算,当然复杂的运算需要许多行的代码一起工作,这种语法和C++一样.
第二种规则,适当使用空格来分隔操作符,这是一种风格,便于理解和记忆,比如:
%testVariable = 3;
这是一句普通的局部变量复制语句,操作符左右空格分开.TorqueScript编译器识别赋值操作符并按照我们期望的方式执行,但是他并不关心空格.就像下面这样:
%testVariable=3;
在分号和多行代码一起出现的情况下,空格规则可以带来很强的感官度.比如下面的代码:
if(%testVariable == 4) echo( "Equal!" );
和C++一样,有两种注释格式:
// Comment /* Comment Line1 Comment Line2 */
变量可以是一个字母,单词,组合短语,它与你游戏内存中的一个值相关联,并用来进行具体的操作.变量的定义通常只需要一行代码即可,如下:
%localVariable = 3;
你可以对变量指定任意类型的值,这种语言也叫做类型不敏感语言,TorqueScript不关心你设定给变量什么值,甚至于在你创建之后也不关心,比如:
%localVariable = 3; // Int %localVariable = "Health"; // String %localVariable = "7 7 7"; // Vector3
上述代码的目的是来说明TorqueScript使用同样的方式来对待所有的数据类型,它会在引擎内部进行解析转换,所以我们不需要担心他们之间的类型转换.和Lua类似.
对于这种不敏感带来的数据类型上的混乱,需要通过变量命名的方式来明确当前变量的类型, 这是一种习惯,比如:
%yourAge = 38; // int %yourName = "Kevin"; // string %yourScores = "99 100 100"; // combin-array
TorqueScript是强容错性的,一个主要的体现就是大小写不敏感,比如下面的写法:
%yourName = "Kevin"; echo( %YourName );
%yourName 和 %YourName 在TorqueScript眼中是同一个变量!
TorqueScript中提供了两种变量类型,局部变量(%)和全局变量($),如下:
%localVariable = 3; $globalVariable = 4;
和其他语言一样,两者的差别就在于作用域的范围.
1: 局部变量: 存在于指定的代码段中,出了代码段则无效了.
2: 全局变量: 贯穿整个游戏生命周期,直到游戏关闭退出,全局变量可以在不同的脚本中访问.
TorqueScript也提供了一些数据类型,比如数字,字符串,布尔,数组,向量, 如果你想测试这些数据类型,可以调用输出命令来查看,如下:
%yourName = "Kevin"; echo( %yourName ); $yourAge = 38; echo( $yourAge );
PS: Torque控制台的呼出快捷键为"Ctrl+~",当然要在游戏运行期.