level 9
volcanic
楼主
可以说脚本是OpenBOR最精彩的部分。
没有脚本的OpenBOR就是一个门槛较低,简单的BTU入门开发工具。
而使用了脚本的OpenBOR就变成了一个定制化极强的游戏开发工具了。
如果说脚本是初级Modder和高级Modder的分水岭也有一定的道理。
因此有必要开辟一个脚本教程。
(如果你从来没有接触过脚本,那么轻先去学习一下变量以及变量的类型等基础知识。这些知识任何脚本语言都有涉及。)
脚本就是通过OpenBOR解释器执行的一段代码。
脚本的语法和C语法非常接近,但是也有一点区别:
Ø 忽略类型,不论是int,long,还是char等等,都被认为是一样的。他们仅仅告诉引擎,这是个变量。同时一个函数也能有返回值,即使你函数类型设置了void类型。
Ø 预编译部分,支持
#include, #
define,
#ifndef,和#
import
Ø 字符串优化,你能用+操作符来连接不同的字符串,比如"55"+"Hits" 返回 55Hits
右操作数会被拷贝到左操作数里。没有类型检查,这点请注意。
支持的操作符:
+
-
*
/
% 取模
=
+=
-=
/=
*=
%=
!
==
||
&&
!=
>
<
>=
<=
&
|
支持的脚本标示符:
do
while
for
break
if
else
switch
case
default
脚本变量:
变量就是用来保存数值的,能被脚本使用的一种载体。
变量有5种类型,但是OpenBOR脚本引擎是不检查类型的,所以在OpenBOR里,任何变量都是Any型。它们只有在使用时才会被自动转换为不同的类型。
空类型:如果一个变量被定义但是没有被初始化,它就是一个空类型。函数会返回一个"空的变量”,以便你能够检查函数是否返回了一个合法值。
整形(int):比如123, -20 ..., 0x986AD3
浮点型(decimal):比如0.3,-2.66
字符串(string):比如"Hello","abcd",但是请注意,字符串有63个字符的限制。
指针(pointer):指针变量不能直接从一个常数来初始化,他们是用来存储句柄的,比如一个Entity,Sprite或者一段Wav。
注意: string + string = string, integer +-*/% decimal = decimal
好了,这一讲先到这,下一讲将讲解变量的作用域。
2014年04月21日 06点04分
1
没有脚本的OpenBOR就是一个门槛较低,简单的BTU入门开发工具。
而使用了脚本的OpenBOR就变成了一个定制化极强的游戏开发工具了。
如果说脚本是初级Modder和高级Modder的分水岭也有一定的道理。
因此有必要开辟一个脚本教程。
(如果你从来没有接触过脚本,那么轻先去学习一下变量以及变量的类型等基础知识。这些知识任何脚本语言都有涉及。)
脚本就是通过OpenBOR解释器执行的一段代码。
脚本的语法和C语法非常接近,但是也有一点区别:
Ø 忽略类型,不论是int,long,还是char等等,都被认为是一样的。他们仅仅告诉引擎,这是个变量。同时一个函数也能有返回值,即使你函数类型设置了void类型。
Ø 预编译部分,支持
#include, #
define,
#ifndef,和#
import
Ø 字符串优化,你能用+操作符来连接不同的字符串,比如"55"+"Hits" 返回 55Hits
右操作数会被拷贝到左操作数里。没有类型检查,这点请注意。
支持的操作符:
+
-
*
/
% 取模
=
+=
-=
/=
*=
%=
!
==
||
&&
!=
>
<
>=
<=
&
|
支持的脚本标示符:
do
while
for
break
if
else
switch
case
default
脚本变量:
变量就是用来保存数值的,能被脚本使用的一种载体。
变量有5种类型,但是OpenBOR脚本引擎是不检查类型的,所以在OpenBOR里,任何变量都是Any型。它们只有在使用时才会被自动转换为不同的类型。
空类型:如果一个变量被定义但是没有被初始化,它就是一个空类型。函数会返回一个"空的变量”,以便你能够检查函数是否返回了一个合法值。
整形(int):比如123, -20 ..., 0x986AD3
浮点型(decimal):比如0.3,-2.66
字符串(string):比如"Hello","abcd",但是请注意,字符串有63个字符的限制。
指针(pointer):指针变量不能直接从一个常数来初始化,他们是用来存储句柄的,比如一个Entity,Sprite或者一段Wav。
注意: string + string = string, integer +-*/% decimal = decimal
好了,这一讲先到这,下一讲将讲解变量的作用域。