C#开发跨平台游戏——FNA的安装及使用
今天我来介绍一下XNA的另一个开源实现FNA。FNA与MonoGame的区别在于:FNA的跨平台是基于运行库的而MonoGame的跨平台是基于源码的,也就是说理论上FNA编译好的游戏不需要修改源码就可以运行在不同的硬件平台,而MonoGame需要将源码放到指定平台重新编译才能运行。
FNA支持Windows, macOS, GUN/Linux, iOS, tvOS, XBox One, Nintendo Switch ,Google Stadia
下载FNA及其他必备
打开官网:https://fna-xna.github.io/ 点击Download
点击FNA 20.01,FNA每月更新一个版,以【年.月】形式命名
下载原生依赖库
点开Visit the FNA wiki 进入使用说明页面下载【FNA Template】项目模板
下载FNA-Template源码,https://github.com/AndrewRussellNet/FNA-Template/archive/master.zip 操作如图:
查看README.md,以windows系统为例,还需要下载DirectX SDK (June 2010)
下载完成后安装DirectX SDK (June 2010)。
接着解压【FNA-Template-master.zip】,【fnalibs.tar.bz2】,【FNA-2001.zip】三个文件。
打开【FNA-Template-master】目录,将【FNA-2001】目录中的内容拷贝到【FNA-Template-master】目录的FNA文件夹中
拷贝【fnalibs】目录中的所有内容粘贴到FNA-Template-master】目录的【fnalibs】文件夹中
打开【FNA-Template-master】目录,用Visual Studio 2017打开【FNATemplate.sln】
选中解决方案,点击右键【生成解决方案】
等待完成!
选中FNATemplate,点击右键【设为启动项目】
点击【启动】
运行如图:
创建Visual Studio项目模板
按键盘 Win+R,输入cmd 回车
使用cd命令进入CreateTemplate项目的bin中的Debug文件夹
输入
CreateTemplate --template FNATemplate "C:\outputPath"
回车
打开C盘的outputPath目录可以看到FNATemplate文件夹
在空白处点击鼠标右键新建【FNATemplate.zip】文件
使用压缩软件打开【FNATemplate.zip】,同时打开【FNATemplate】文件夹。将FNATemplate文件夹中的所有内容拖拽到压缩软件窗口内
点击【是】
最后拷贝【FNATemplate.zip】文件,将它复制粘体到【C:\Users\【当前用户】\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\MonoGame】中接口。
这时候新建项目会有错误:
解决办法:
首先新建一个解决方案,操作如下图:
右键选中【FNAGameTest】【在文件资源管理器中打开文件夹】
打开之前的【FNA-Template-master】文件夹,找到【build】目录将它复制到解决方案所在目录
选中解决方案,点击右键【添加】【新建项目】
【Visual C#】【MonoGame】【FNA Game Project】,输入名称【FNAGameTest】【确定】
项目虽然建立好了,但还有一个问题,其中没有引用FNA。
只需要引用之前【FNA-Template-master】目录生成的FNA.dll即可或引用FNA项目
引用以后,在调试时,还会出现错误。你需要将fnalibs文件夹中的x64和x86两个文件夹拷贝到项目的bin目录的Debug文件夹中。如果想在mac上运行则拷贝osx,linux上运行拷贝lib64