nasal脚本起源与环境搭建(flightgear开源项目)

简介: nasal脚本起源与环境搭建(flightgear开源项目)

FlightGear

FlightGear是一款开源飞行模拟器。项目始于1997年,主要目标是为学术科研领域创造一个尖端的飞行模拟器框架,也可拓展到飞行训练,飞行仿真,模拟飞行游戏等方面。

它支持全球三维实景,20,000多个跑道、400多种飞行器、跨平台、多人联飞、多样的开放飞行数据模型等功能。

官网直达 | 中文官网


FlightGear下载

官网:https://www.flightgear.org/

进入官网首页就可以看到大大的【Download Now and Fly Free!】

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

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


安装流程较为简单,这里不再赘述,一直下一步即可。

nasal 脚本

nasal脚本起源

NASAL是FlightGear使用的一种非常强大的脚本语言系统,它与FlightGear关系十分密切,可以读取、修改FlightGear的属性树中的属性值,可以函数直接访问FlightGear的内部数据,可以创建GUI对话框,等等。要想深入的理解FlightGear,并对其进行开发,NASAL是一个强有力的工具。


nasal脚本介绍

NASAL全称是Not Another Scripting Language。NASAL借鉴了如Javascript、Python、Perl等流行的脚本语言系统的设计理念,实现了一个简单且完整的OOP(面向对象程序设计)脚本语言系统,并且是不依赖于操作系统平台的。NASAL内置了一个垃圾回收器来管理内存。

NASAL的语法规则有点类似于Javascript。

FlightGear提供了很多用于库函数,这些函数都可以被NASAL直接调用。

NASAL代码可以在FlightGear的aircraft配置文件中调用执行,也可以嵌入到XML文件里面执行。FlightGear中有各种XML文件用于描述对话框、指定物体动作、响应键盘游戏杆的操作、对应场景中的物体等等。这些XML文件中都可以嵌入NASAL代码并执行。


使用FlightGear内置的环境

首先进来是这样一个界面。我们不需要过多的操作,除非你想开飞机。这里我们直接点击左下角的开始飞行

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

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


使用开源的Nasal脚本解释器

这里贴一下这位作者的账号以及开源库

大佬的bilbil账号 | GitHub | Gitee

进不去GitHub的小伙伴可以点击Gitee进入下载。下载好之后大体就是下面这个样子。


在README.md中详细说明了Win\Linux\IOS的环境搭建。下面贴出VS环境的搭建过程。

Create VS project | 创建 VS 工程

First | 首先

Make sure you are using VS 2022.

确保你使用的是 VS 2022。

How to Create VS project

1.Get code from this repo using git.


2.In Visual Studio, click File->New->Project From Existing Code....


3.Select Visual C++->Next->choose project file location->write the project name at ease->Finish.


4.Remove cpp files in module to avoid compilation problems.(they should be compiled to dynamic libraries)


5.Click Source Files in Search Solution Explorer at left, right click main.cpp, compile.


如何创建VS工程

1.用git从这个仓库获取代码。


2.在VS的界面,点击文件(F)->新建(N)->从现有代码创建项目(E)。


3.选择创建Visual C++项目->下一步->项目文件位置选择你下载的代码存放的文件夹->填项目名称,随便写->完成。


4.从项目中去掉 module 里的cpp文件,以防止编译错误。(那些本应该编译到动态库)


5.点开左侧解决方案资源管理器中的Source Files,右键点击main.cpp,编译。


会遇到问题

重定义问题

这里需要注意的是,你不能将model模块添加到vs工程中,否则会报重定义问题,关于这个问题我在bilbil上问过作者。


无法将参数1从WCHAR[260]转换为char

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

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


指针类型转换报错

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

解决方法

项目配置

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

使用nasal解释器

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

然后输入chcp 65001命令,回车。

在当前路径创建一个1.nas的脚本文件。

然后在cmd中输入 nasal.exe 1.nas 回车。

语法:可执行程序 脚本文件

目录
相关文章
|
7月前
|
人工智能 机器人 Serverless
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
当云计算遇见具身智能,AI咖啡开启零售新体验。用户通过手机生成个性化图像,云端AI快速渲染,机器人精准复刻于咖啡奶泡之上,90秒内完成一杯可饮用的艺术品。该方案融合阿里云FunctionAI生图能力与安诺机器人高精度执行系统,实现AIGC创意到实体呈现的闭环,为线下零售提供低成本、高互动、易部署的智能化升级路径,已在商场、机场、展馆等场景落地应用。
安诺机器人 X 阿里云函数计算 AI 咖啡印花解决方案
|
存储 小程序 数据可视化
使用无代码工具开发一款问卷调查小程序
使用无代码工具开发一款问卷调查小程序
|
1月前
|
存储 消息中间件 Java
IoTSharp深度解析:基于.NET生态的物联网平台架构与实践
IoTSharp是基于.NET的高性能开源物联网平台,支持百万级MQTT连接、多协议接入(Modbus/OPC UA/CoAP)及时序数据高效存储。内存占用比Java方案低40%,集成规则引擎、插件化协议适配与多模型存储,适用于工业物联网与智慧能源场景。(239字)
154 3
|
7月前
|
机器学习/深度学习 算法 机器人
使用Koopman理论识别机器人动力学的非线性系统(Matlab代码实现)
使用Koopman理论识别机器人动力学的非线性系统(Matlab代码实现)
379 5
|
算法 数据可视化 调度
基于NSGAII的的柔性作业调度优化算法MATLAB仿真,仿真输出甘特图
本程序基于NSGA-II算法实现柔性作业调度优化,适用于多目标优化场景(如最小化完工时间、延期、机器负载及能耗)。核心代码完成任务分配与甘特图绘制,支持MATLAB 2022A运行。算法通过初始化种群、遗传操作和选择策略迭代优化调度方案,最终输出包含完工时间、延期、机器负载和能耗等关键指标的可视化结果,为制造业生产计划提供科学依据。
|
人工智能 IDE 开发工具
《C++人工智能开发 IDE 全解析:助力智能创新之路》
本文深入探讨了几款适合 C++ 人工智能开发的 IDE,包括 Visual Studio、CLion、Eclipse CDT 和 Qt Creator。每款 IDE 都有其独特的优势,如 Visual Studio 的强大调试工具、CLion 的代码导航和 CMake 支持、Eclipse CDT 的跨平台能力和丰富的插件生态系统,以及 Qt Creator 在界面开发方面的卓越表现。开发者应根据项目需求、团队协作和个人习惯选择最合适的 IDE,以提升开发效率和体验。
542 16
|
安全 数据安全/隐私保护
如何搭建政务服务网站?政务服务网站包含哪些内容?
政务网是公众获取政府信息的重要渠道,但在信息公开程度、在线服务内容等方面存在不足。为了提高政务网站的效率和质量,需要整合信息资源、清晰导航规划、在线服务、数据开放和确保网站信息安全与隐私保护。
333 13
|
Ubuntu Python
全网最简约的Vscode配置Anaconda环境(百分百成功)
全网最简约的Vscode配置Anaconda环境(百分百成功)
36818 0
全网最简约的Vscode配置Anaconda环境(百分百成功)
|
数据采集 存储 数据可视化
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
Python数据分析:揭秘"黑神话:悟空"Steam用户评论趋势
|
人工智能 数据可视化 定位技术
DataV AI助手小技巧-如何制作PPT数据地图
“数据地图”是PPT汇报地区业务数据的最佳形式之一;以往制作数据地图需要用户有一定的编程和数据处理基础,制作门槛较高;随着DataV整合通义千问大模型能力之后,不懂编程和设计的用户也可以借助AI助手“零代码”制作数据地图,真正实现了人人可用的地图数据可视化。 进入大模型AI时代,人人可以变成职场跨界多面手!
12718 3
DataV AI助手小技巧-如何制作PPT数据地图

热门文章

最新文章

下一篇
开通oss服务