• 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脚本起源

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

    nasal脚本介绍

    NASAL全称是Not Another Scripting LanguageNASAL借鉴了如Javascript、Python、Perl等流行的脚本语言系统的设计理念,实现了一个简单且完整的OOP(面向对象程序设计)脚本语言系统,并且是不依赖于操作系统平台的。NASAL内置了一个垃圾回收器来管理内存。
    NASAL的语法规则有点类似于Javascript
    FlightGear提供了很多用于库函数,这些函数都可以被NASAL直接调用。
    NASAL代码可以在FlightGearaircraft配置文件中调用执行,也可以嵌入到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 回车。
    语法:可执行程序 脚本文件
    在这里插入图片描述

  • 相关阅读:
    HackTheBox Support 逆向工程获取LDAP凭证,票证伪造提权
    IP地址查询和代理服务器:双重保护隐私
    基于FPGA的图像实时采集
    Java无锁并发
    Oracle Automatic Database Diagnostic Monitor (ADDM) 学习笔记
    关于假冒我司关联公司进行欺诈活动的严正声明!
    【RocketMQ】消息的拉取
    网页开发从无到有——html前端学习(二)
    QT 自学内容 day04 UDP 数据传输, TCP 数据传输,ui 界面设计,按钮的设计自动绑定槽函数!
    河南省文化旅游发展相关统计数据(2014-2023年)
  • 原文地址:https://blog.csdn.net/qq_45254369/article/details/127034482