文档介绍:微软模拟飞行课程中的脚本控制教程
作者:冷锋
Microsoft Flight Simulator 游戏中的地面课程是飞友都接触过的,其课程中的飞行绝大部分是使用脚本
来控制的飞行。这也是我在对 Microsoft Flight Simulator 2004 进行汉化的过程中,经过不断摸索和学习,
逐步领会到其中的一些奥妙和乐趣。相信你在看完本教程之后,也会对此感有兴趣,从而增加你对 Microsoft
Flight Simulator 游戏的进一步了解,到达一个更广阔、更有趣味和挑战性的游戏境界中,甚至可以亲自动
手编写出值得炫耀的模拟飞行教学课件。
有相当一部分的飞友玩家,在开发游戏中的机模涂装、机场地景,编辑和翻译教程等诸多方面做出了
著有成效可喜成绩,通过网络分享,使爱好模拟飞行的广大网友受益非浅,仅此向这些无私奉献的飞鸟们
致以崇高的敬意!
鉴于众多的玩家比较注重于模拟飞行游戏中的操作技巧,忽略了开发者在游戏中使用的各种技术手段,
本人在此班门弄斧,编写出这个专题教程,希望能达到抛砖引玉,和玩家们相互交流和学习的目的效果。
上篇脚本控制飞行基础知识
关于游戏中的脚本
最典型的例子是 Microsoft Flight Simulator 地面飞行学校的飞行课程,使用了脚本(Script)进行飞
行的控制,细心的玩家可能已发现游戏中有个“Script”文件夹,不错,这个文件夹中的 ABL 文件就是一
些特殊的脚本(Script)文件,他们在游戏中是一种公用的模块,由某个飞行的具体控制脚本(与飞行文件
FLT 文件同在一起并且文件名相同)的 ABL 文件进行调用。例如:地面飞行学校课程中的私人飞行员课程
中的第四课:机场航线,这个飞行课程在“Microsoft Games\Flight Simulator 9\Lessons\priv”文件夹中有三
个文件:
A. Lesson (飞行初始化文件,它将调入以下的 B. C. 两个文件)
B. Lesson (飞行控制脚本,它将调入上述“Script”文件夹夹中的几个个公用 ABL 文件)
C. Lesson (飞行气象配置文件)
当你在飞行这个课程中的机场航线时,游戏将会使用这三个文件,其中 Lesson 将控制你的飞
行活动。
什么是脚本(Script)
脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、
编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺
序执行。
动态程序一般有两种实现方式,一是二进制方式,一是脚本方式。
二进制方式是先将我们编写的程序进行编译,变成机器可识别的指令代码( 文件),然后再执行。
这种编译好的程序我们只能执行、使用,却看不到他的程序内容。
方式是程序在执行时,由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序
执行。
脚本同我们平时使用的 VB、C 语言的区别主要是:脚本语法比较简单,比较容易掌握;脚本与应用程
序密切相关,所以包括相对应用程序自身的功能;脚本就是源程序,就是代码程序。
飞行控制脚本
Microsoft Flight Simulator 中飞行控制脚本是一个以 ABL 为扩展名的文本文件,它主要包含了对飞行中
的每一事件的控制命令,一旦游戏执行程序载入一个飞行文件(扩展名为 FLT)之后,控制权将由飞行脚
本中命令来执行。脚本命令有一定的格式和时序,一个飞行脚本的大致格式为:
1. 申明模组(Module)名称。比如是一个飞行的主题,命令格式举例如下:
module HomgKongTraffic;
2. 定义常量。引入一些公用脚本模块和指定飞行中的标准参量值。
公用脚本模块是预先编制好的脚本,它们包含了对不同单位制之间的数学转换、事件名称的定义、驾
舱操作工具的定义、地磁与航向角度之间的计算以及航路点经纬度的定义等等;飞行标准参量值包含高度、
航向、空速以及通讯和导航频率的定量值或者逻辑值等,是衡量飞行活动中的标准。
3. 初始进程(可选部分)。用以在飞行前的十秒钟等待,以便用文本和/或语音对这个飞行进行介绍。
命令格式举例如下:
function Init; (初始进程函数)
code
Writeln ("Finished with Init");(写入初始进程的片段)
#include "script\lib\STDInit"; (引入初始进程的公用脚本模块)