FSX BGL 编译器手册

概述
BGL编译器主要用来把风景和机场数据编译成FSX可以阅读的格式。还可以用来为任务创建奖品(rewards file)文件,和调节时区信息。

向后兼容性
为fs2004创建的风景是和fsx兼容的。不应该再从以前版本的飞行模拟来使用BGL op-codes或者BGLC编译器编译。老的BGL op-codes支持向后兼容。

GUID格式
GUID现在格式如{93802d8b-ba4f-45eb-a272-9f029a0feeb3},左右波浪括号,中间为破折号。这个GUID是一个水塔的GUID。在以前的版本中GUID是32位十六进制字符串。

生成GUID的工具
很多SDK工具需要GUID,它是一个全局唯一标志符。在Visual Studio 和Visual Studio Express有生成GUID的工具。或者可以使用GUIDGEN工具,其下载地址为

http://www.microsoft.com/downloads/details.aspx?...

如果要把旧版本的GUID转换为新的格式,或者把新的格式转换为旧的格式,可以使用下面的C#函数。

//GUID 转换函数

public static Guid ChangeGuidFormat (Guid guid)
{
string guidString = guid.ToString ("N");

guidString = string.Format ("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}",
guidString.Substring (0, 8),
guidString.Substring (12, 4),
guidString.Substring (8, 4),
guidString.Substring (22, 2),
guidString.Substring (20, 2),
guidString.Substring (18, 2),
guidString.Substring (16, 2),
guidString.Substring (30, 2),
guidString.Substring (28, 2),
guidString.Substring (26, 2),
guidString.Substring (24, 2));

return new Guid (guidString);
}

如果输入的是旧格式GUID,那么返回新格式的,若是输入新格式GUID,则返回旧的格式。

BGL编译器手册PDF 文件

编译器的使用

如果操作系统是比Windows Xp还要老,要保证运行BGLcomp的电脑已经安装了MSXML4.如果在Windows Vista上运行,需要登录的用户权限为管理员。

BGLcomp的运行格式为:

bglcomp.exe

在每次批处理时,filename可以接受通配符。无参数运行此命令,会输出版本和使用方法信息。和编译器一起有一个文件BGLComp.xsd,它必须和bglcomp在一个目录下,才能正常工作。

XML格式

风景格式是基于XML的,且遵守严格的元素层次的文件结构,且区分大小写。XML是一个包含元素和属性的文本文件。XML规范接受文件中可以有注释文字。元素,属性和其值都是区分大小写的。

XML协定如下:

1. 元素中的所有重要单词都是大写的。
2. 属性的首字母不大写,但是继承的重要单词大写。
3. 属性值的所有字母大写,除非特别说明,且词之间用下划线分隔。
4. 可以在XML文件中增加空行以提高可读性。
5. 任何一个对象的属性呈现顺序是任意的。
6. 关键词YES或者NO等同于TRUE或FALSE。

风景文件格式

下面的示例为风景文件的XML格式。‘<!--‘ 和‘-->’是注释文字的开头和结尾。
<?xml version="1.0" encoding="ISO-8859-1"?>
version="9.0"
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation="bglcomp.xsd" >
<!-- Facility and scenery data goes here -->

1. 文件的第一行说明了XML的版本,和文件的其他部分使用的字符编码。XML分析器并不严格要求有这一行,但是强烈建议保留这行以保证分析器能够输出预期的结果。
2. 第二行表示数据的开始。FSData标签表示是一个元素,表明文件中表示的是什么数据。在FSData元素之后是属性version。其值用双引号引起来。对于FSData其后必须跟随version,且值必须为“9.0”。至2004版本以来,并未有重大变化,所以仍沿用9.0。
3. 后续的属性告诉XML分析器如何验证XML文件的内容。这些属性必须表达在所有风景XML文件里,且匹配上面的例子。一旦FSData元素的所有属性都指定完成,元素用“>”关闭。
4. 在FSData元素的声明之后就是定义文件内容的XML信息。在这个例子里,文件内容只是一个注释,如上文的红色斜体行。
5. 完成这个文件,使用了元素来关闭。

对于如何创建新的地形,请参考其它文档。设施和风景信息可以包含在一个单一的.XML源文件中,并且鼓励使用这种方法。
>