SMX II 脚本教程

  • 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 返回多个字符串连接得到的字符串

    返回目录