FlightGear是一款开源飞行模拟器。项目始于1997年,主要目标是为学术科研领域创造一个尖端的飞行模拟器框架,也可拓展到飞行训练,飞行仿真,模拟飞行游戏等方面。
它支持全球三维实景,20,000多个跑道、400多种飞行器、跨平台、多人联飞、多样的开放飞行数据模型等功能。
官网直达 | 中文官网
官网:https://www.flightgear.org/
进入官网首页就可以看到大大的【Download Now and Fly Free!】

然后就可以选择对应的版本,如果想添加其他飞机就点击下面的Download Aircraft。

因为我是Win10就选择【FlightGear 2020.3 for windows】链接,然后跳转到下面这个界面,等待下载完成即可。

安装流程较为简单,这里不再赘述,一直下一步即可。
NASAL是FlightGear使用的一种非常强大的脚本语言系统,它与FlightGear关系十分密切,可以读取、修改FlightGear的属性树中的属性值,可以函数直接访问FlightGear的内部数据,可以创建GUI对话框,等等。要想深入的理解FlightGear,并对其进行开发,NASAL是一个强有力的工具。
NASAL全称是Not Another Scripting Language。NASAL借鉴了如Javascript、Python、Perl等流行的脚本语言系统的设计理念,实现了一个简单且完整的OOP(面向对象程序设计)脚本语言系统,并且是不依赖于操作系统平台的。NASAL内置了一个垃圾回收器来管理内存。
NASAL的语法规则有点类似于Javascript。
FlightGear提供了很多用于库函数,这些函数都可以被NASAL直接调用。
NASAL代码可以在FlightGear的aircraft配置文件中调用执行,也可以嵌入到XML文件里面执行。FlightGear中有各种XML文件用于描述对话框、指定物体动作、响应键盘游戏杆的操作、对应场景中的物体等等。这些XML文件中都可以嵌入NASAL代码并执行。
首先进来是这样一个界面。我们不需要过多的操作,除非你想开飞机。这里我们直接点击左下角的开始飞行。

点击上方功能菜单的【Debug】-》【Nasal Console】

然后在代码区中写入代码,然后点击右下角的【Execute】按钮。即可执行脚本。

这里贴一下这位作者的账号以及开源库
大佬的bilbil账号 | GitHub | Gitee
进不去GitHub的小伙伴可以点击Gitee进入下载。下载好之后大体就是下面这个样子。

在README.md中详细说明了Win\Linux\IOS的环境搭建。下面贴出VS环境的搭建过程。
Make sure you are using VS 2022.
确保你使用的是 VS 2022。
Get code from this repo using git.
In Visual Studio, click File->New->Project From Existing Code....
Select Visual C++->Next->choose project file location->write the project name at ease->Finish.
Remove cpp files in module to avoid compilation problems.(they should be compiled to dynamic libraries)
Click Source Files in Search Solution Explorer at left, right click main.cpp, compile.
用git从这个仓库获取代码。
在VS的界面,点击文件(F)->新建(N)->从现有代码创建项目(E)。
选择创建Visual C++项目->下一步->项目文件位置选择你下载的代码存放的文件夹->填项目名称,随便写->完成。
从项目中去掉 module 里的cpp文件,以防止编译错误。(那些本应该编译到动态库)
点开左侧解决方案资源管理器中的Source Files,右键点击main.cpp,编译。
这里需要注意的是,你不能将model模块添加到vs工程中,否则会报重定义问题,关于这个问题我在bilbil上问过作者。

这个问题我也咨询过作者,作者称这是字符集设置的问题,并且已将版本进行更新。

解决方法我贴下面,你们如果使用的话应该不会报这个错误了。

这里我们使用C++11的强制类型转换reinterpret_cast就可以了

解决方法

我将项目的输入路径改到项目根路径了,这样方便与库函数查找,否则还需要在项目配置添加库函数的路径。

先将项目进行编译,然后在项目根路径上面路径那块输入cmd,然后回车,就打开cmd并在当前路径下。

然后输入chcp 65001命令,回车。
在当前路径创建一个1.nas的脚本文件。

然后在cmd中输入 nasal.exe 1.nas 回车。
语法:可执行程序 脚本文件
