XNA、FNA以及在VS2017中编写XNA
XNA是早期DX SDK支持的C#游戏开发环境,虽然现游戏开发大多是以Unity3D,Unreal 4为主,但是许多独立游戏开发者,特别是2D游戏,依然使用XNA进行开发,
纠其原因,猜测是C#开源且有了跨平台实现。
这可以从许多独立游戏的Switch移植版看出端倪,使用XNA开发游戏依然有一定的优势。
首先是在VS2017中编写XNA,配置见这篇文章。
http://flatredball.com/visual-studio-2017-xna-setup/
简单总结
1.安装XNA 4.0的运行时,SDK等,再安装VS2017的工具链XNA Game Studio 4.0.vsix
2.复制XNA 4.0的模板
C:\Program Files (x86)\MSBuild\Microsoft\XNA Game Studio
到VS2017目录中
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\XNA Game Studio
3.
注册全局缓冲
cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin gacutil /i Microsoft.Build.Framework.dll gacutil /i Microsoft.Build.dll gacutil /i System.Collections.Immutable.dll gacutil /i Microsoft.Build.Utilities.Core.dll
这样就可以在VS2017中使用XNA 4的工程模板了。
不过有个小问题,就是不能像VS2010一样生成字体文件了,创建不了,没有字体选项,不知道是哪的问题,
不过因为中文字体一般会使用bmfont渲染,对我来说暂时没影响,网上搜了一圈似乎没找到Freetype的C#实现,自己移植太花时间精力,估计所有人都一样所以才没什么人搞吧。
========================================
接下来是FNA,FNA是一个与XNA使用几乎完全相同的XNA 4跨平台实现,因为命名空间和实现相同,所以你可以在不修改XNA工程的情况下,直接切换成FNA使用。
Mono Game似乎也是这样,但是暂时还没用过。
FNA我在Win7下简单测试,一切正常。
写本文时FNA最新版本为19.02
安装与依赖见这个wiki
https://github.com/FNA-XNA/FNA/wiki/1:-Download-and-Update-FNA
简单来说,下载源码
https://github.com/FNA-XNA/FNA/releases
编译出FNA.dll
下载预编译依赖库
http://fna.flibitijibibo.com/archive/fnalibs.tar.bz2
在你的新工程里引用一下DLL,重新编译就能运行了。
值得一提的是,FNA是开源的XNA实现,可以参考源码实现,果然未来属于开源,对着源码调式就是舒服。
XNA、FNA以及在VS2017中编写XNA的更多相关文章
- 在VS2017中编写Python程序
最近开始了python的学习,在搭建完python环境之后,在选择IDE的时候陷入了困境,首先选择的是PyCharm但是用着还是不习惯,毕竟用VS开发了几年了,突然换软件总感觉有点不适应,就想到了强大 ...
- 踩坑事件:windows操作系统下的eclipse中编写SparkSQL不能从本地读取或者保存parquet文件
这个大坑... .... 如题,在Windows的eclipse中编写SparkSQL代码时,编写如下代码时,一运行就抛出一堆空指针异常: // 首先还是创建SparkConf SparkConf c ...
- 如何在windows中编写R程序包(转载)
网上有不少R包的编译过程介绍,挑选了一篇比较详细的,做了稍许修改后转载至此,与大家分享 如何在windows中编写R程序包 created by helixcn modified by binaryf ...
- html中编写js的方式
第一种:引用外部的js文件 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ...
- 在ubuntu linux 中编写一个自己的python脚本
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pmpy为例(play music python),为了区别之前说的bash脚本添加了py后缀),来 ...
- 在ubuntu linux 中编写一个自己的bash脚本
在ubuntu linux 中编写一个自己的简单的bash脚本. 实现功能:终端中输入简单的命令(以pm为例(play music)),来实现音乐的播放.注:本人ununut中安装了audacious ...
- robot framework笔记(一):环境配置(基于python3)+在pycharm中编写及运行robot脚本
(一)使用pip安装robotframework框架和seleniumlibrary库 pip install --upgrade robotframework pip install --upgra ...
- 如何在Ruby中编写微服务?
[编者按]本文作者为 Pierpaolo Frasa,文章通过详细的案例,介绍了在Ruby中编写微服务时所需注意的方方面面.系国内 ITOM 管理平台 OneAPM 编译呈现. 最近,大家都认为应当采 ...
- Laravel 项目中编写第一个 Vue 组件
和 CSS 框架一样,Laravel 不强制你使用什么 JavaScript 客户端框架,但是开箱对 Vue.js 提供了良好的支持,如果你更熟悉 React 的话,也可以将默认的脚手架代码替换成 R ...
随机推荐
- java调用webservice方法
由于项目的历史原因,webservice服务端是乙方公司开发的,我们自己开发的系统需要去调用乙方公司的webservice接口.前面用了网上提供的一种方法(非生成代理类),怎么也调用不成功(也许是因为 ...
- Spring 配置 定时任务
官档地址:https://docs.spring.io/spring/docs/5.1.4.RELEASE/spring-framework-reference/integration.html#sc ...
- 解决Oracle数据库空间不足问题
//查询表空间的大小以及文件路径地址select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space ...
- python-django(环境配置)
1.配置虚拟环境 <1>.pip install virtualenv 安装创建虚拟环境的工具 <2>.pip install virtualenvwrappe ...
- SpringBoot集成RabbitMQ 从零到一,学会MQ异步和解耦--
RabbitMQ 概念 RabbitMQ 即一个消息队列,_主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用._RabbitMQ使用的是AMQP协议,它是一种二进制协议.默认启 ...
- mac pfctl / centos iptables 使用
mac使用pfctl 为了测试zk client的重连功能,需要模拟zk client与zk server网络连接出现问题的情况,经过查询资料发现可以使用防火墙阻止zk server启动端口上的流量实 ...
- Tomcat开启本地库(Apache Tomcat Native Library)支持
操作系统环境:Ubuntu 17 amd64位 软件环境:Tomcat 9 tomcat安装位置:/opt/tomcat JDK:1.8.144 64位 安装步骤: 1:编译安装 cd /opt/t ...
- 命令行连WiFi
命令行连WiFi sudo iw dev wlan0 scan |grep SSID wpa_cli -iwlan0 add_network wpa_cli -iwlan0 set_network 4 ...
- H5端密码控件自动化测试
最近在做H5端UI自动化测试,其中遇到了一个棘手问题就是密码控件,因为密码控件的按钮每次都是随机不一样的,没法固定去点击输入密码.密码的输入框是div不是input,所以没法用send_keys()这 ...
- java程序员经常使用的Intellij Idea插件
大概从去年年初开始慢慢抛弃习惯多年的eclipse,开始使用Intellij Idea,以下是我使用过的一些Intellij Idea插件: 1.lombok https://plugins.jetb ...