- 注册时间
- 2004-9-3
- 最后登录
- 1970-1-1
|
发表于 2007-9-26 12:44:45
|
显示全部楼层
脚本常常用于RPG游戏的制作当中,制作者一般使用它来简化剧情的设计工作,用它来控制RPG游戏中剧情的发展。事件的运作建立在脚本的基础上,而脚本的设计建立在引擎的基础上,所以设计脚本之前因该想一想引擎,好的脚本对剧情的描述具有简单、准确的性质。如同编程语言一般高级语言往往简单而无扩张性,低级语言复杂而灵活,故好的脚本亦如C语言一般高低兼顾。
脚本功能的实现过程一般为:脚本代码的编写->生成脚本伪代码->游戏引擎解释脚本伪代码,从而实现脚本的功能.
先来说说的脚本的语法:脚本具备最基本语法,如表达式求值(包含各种常用的运算),无条件转向,条件分支,循环,子函数等。
触发事件的条件:Lookinto,在Tile面前按下调查键触发事件
Walkon,停留在Tile上面触发事件
Leave,离开Tile时触发事件
脚本语句组成:脚本的语句由关键字和参数组成,参数一般由括号"(",")"括起来或者由空格" "分隔关键字和参数。脚本语句参数用","分开,表示可以省略,一般省略的部分都给出缺省值("0")。
脚本语句参数的类型:String,字符串
Integer,整数
Real,实数
UnsignInteger,没有符号的整数(即不小于0的整数)
UnsignReal,没有符号的整数(即不小于0的整数)
逻辑运算符:= :等于
< :小于
> :大于
<= :小于等于
>= :大于等于
== :等于(字符串)
!! :不等于(字符串)
再来说说生成脚本伪代码,可以自己来设计脚本代码编译器,编译出的伪脚本代码类似于汇编的机器码,脚本语句中的关键字和参数分别被编译为"操作数"和"立即数"/字符串等。
脚本的解释过程一般体现在RPG引擎的中,一般都在内存中开辟一个足够大的数组存编译好的指令,三个2k的整型数组用于存脚本中用道的整形变量。一个字符型二级指针来记录一个脚本中出现的所有字串,一个整形数据ip代表当前指令地址。比如:
short code[0xFFFF/2];
short data[3][1024];
char **msg;
long ip;
然后用switch();函数来逐个地解释每一种脚本语句的功能,解释完一种脚本语句后向后移动ip指针,使其指向下一句。就这样直到游戏结束。 |
|