-
0.介绍
SMX2内置了一个小型的脚本引擎, 采用GScript语言(类C++语法)来编写脚本, 并由GSVM负责脚本执行,目前仅提供最基础的语言特性.
返回目录 -
1.基本概念
-
1.1 字符串
- 字符串是零个或多个字符组成的序列.
- 字符串使用双引号来指示, 如 "a string".
转义符
如果希望在字符串中表示双引号("), 可以使用转义符 \" 来完成.
同时, 可以使用转义符 \\ 来表示反斜杠本身, \n 来表示换行.
注: 目前SMX对转义符 \" 的支持存在问题, 此问题将在下一版本修复.
-
1.2 变量
变量可用来保存数据, 定义了一个变量后, 可使用变量名来获取/修改变量的值.
int i; // 定义变量i i = 1; // 将变量的值修改成1 i = i + 2; // 将i的值增加2(得到3), 并修改i的值
变量的生命周期- 变量的生命周期可理解为变量在程序中的有效范围, 目前SMX仅支持局部变量
- 标识符必须以字母或者下划线开始
- 标识符可包含字母, 数字, 下划线
- 标识符对大小写敏感
- 有效的标示符名称如 i, _foo, bar123
-
1.3 数据类型
数据类型决定了变量可以处理的数据, SMX支持的基本数据类型是整型(int)及字符串型(string).
-
-
2.运算符与表达式
-
2.1 运算符
运算符用于执行变量与/或值之间的运算.
运算符 描述 算术运算符 + 加 - 减 * 乘 / 除 赋值运算符 = 赋值 关系运算符 == 相等 > 大于 < 小于 >= 大于或等于 <= 小于或等于 != 不等于 逻辑运算符 ! 取反 -
2.2 表达式
符号和运算符的一种组合, GSVM将计算该组合以得到一个数据值.
-
-
3.控制流
-
3.1 条件语句
在GScript中, 可以使用以下几种形式的条件语句:
if
在指定条件成立时执行代码.if (condition) { statement; ... }
if ... else
在指定条件成立时执行代码, 条件不成立时执行另外的代码.if (condition) { statement1; ... } else { statement2; ... }
if ... else if ... else
在满足某个条件时执行多个代码块的一个.if (condition1) { statement1; ... } else if (condition2) { statement2; ... } else { statement3; ... }
-
循环语句
while
在指定条件成立时循环执行代码.while (condition) { statement; ... }
-
-
4.函数
GScript目前支持函数调用, 并提供了一些基本函数
4.1 函数调用
- 语法:
result = func(param1, param2, ...);
- 例子:
m = Max(1, 3, 2); // 执行后 m = 3
- 语法:
-
5.属性和方法(SMXAPI)
SMX的对象提供了一系列的属性和方法, 可以通过该对象来调用这些属性和方法.
-
5.1 属性
使用object.Property方式可以访问对象的属性, 获取/设置对象属性值的方法类似于变量访问.
object1.Visible = 0; // 将object1的Visible属性设置为0, 即设置对象为不可见 object2.Left = object2.Left + 32; // 使object2向右移动32个单位
-
5.2 方法
使用object.Method(arg)方式可以调用对象的方法, 调用对象方法的方式类似于函数调用.
MessageBox.Show("message"); // 显示一个消息框
-
-
6.事件
SMX提供了事件机制, 当object对象的event事件被触发时, 将调用object_event中定义的处理程序.
返回目录 -
附 函数库
Int
返回数字的整数部分
Abs
返回数字的绝对值
Max
返回多个数字中的最大值
Min
返回多个数字中的最小值
Rand
返回一个随机数
Sin
返回弧度的正弦值
Cos
返回弧度的余弦值
Concat
返回多个字符串连接得到的字符串