Vac*_*ano 7 c# xna monogame windows-runtime sharpdx
是否可以使用C#编写Windows 8 RT和/或Windows 8 Phone游戏?
Vac*_*ano 13
我已经对"C#中的游戏"做了大量的研究,所以我想我会把它发给别人:
XNA是制作C#游戏的简便方法.您可以在Windows应用商店发布新的XNA游戏,它可以正常工作.
但是,您无法使用XNA制作Windows Phone 8或Windows 8游戏.(您只能定位Windows Phone 7.1版.)XNA不支持这些操作系统的新API.
但是,Windows Phone 8和Windows 8都将运行XNA应用程序.这些应用程序无法定位任何特定于Windows 8或Windows 8 Phone的功能.
所以总结一下.当前版本的XNA(4.0)支持较旧的API与Windows和Windows Phone通信.他们仍然可以在Windows 8上运行,但你不能使用更新的东西.
微软没有为新的Windows 8和Windows Phone 8 API提供用C#制作游戏的产品.
但是,如果您不介意使用开源项目,可以使用C#编写可以使用较新的Windows 8和Windows Phone 8 API的游戏:
MONOGAME
如果你想使用XNA的api为新的Windows 8 API制作游戏,你可以使用MonoGame(这就是我使用的).它是一个开源API,它实现了XNA API,但有IOS,Android和Windows 8的插件.这是一个非常好的跨平台选项.MonoGame最近支持3D图形(即无限飞行,武装).(注意:我不以任何方式加入MonoGame.)
SHARP DX(DirectX)
如果您想要一种Microsoft支持的方式来制作针对Windows 8 API的游戏,那么最好的选择是DirectX.但是Direct X是一个C++ API.这真的很难.
如果你想制作2D游戏(比如植物大战僵尸或愤怒的小鸟)那么Direct X就有点过分了.走MonoGame路线要好得多.我花了几天时间深入研究教程并非常努力地理解Direct X.到那时我已经获得了在屏幕上绘制单个三角形的能力.(同样的时间让我的游戏循环开始,精灵在MonoGame中移动.)
所以我再说一遍,如果您还不知道DirectX并且正在制作2D应用程序,请不要沿着DirectX/SharpDX路走下去.
Windows Phone 8不支持Direct2D进一步阻碍了DirectX 2D路由.DirectX有一个名为Direct2D的子集用于2D渲染.但是,Windows Phone 8不支持此子集."替换"(暂时)是Direct X工具包.
如果您仍然使用Direct X,那么您可以使用SharpDX在C#中编写它.它是DirectX的C#包装器,效果很好(虽然我不知道它是否支持Direct X Toolkit).
摘要
缺点(对我来说)是微软没有为C#游戏开发更新他们的API以支持Windows 8和Windows Phone 8中的新东西.但MonoGame允许你使用XNA API来做到这一点.它还允许您编写跨平台游戏,因此无论如何它都更好.(你可以通过"免费"移植到IOS和Android.)
我的游戏在MonoGame中正在进行中,到目前为止没有任何问题!