是否可以使用 C# 编写 Windows 8 RT 和/或 Windows 8 Phone 游戏代码?
最佳答案
我对“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 上运行,但您不能使用较新的东西。
Microsoft 没有为新的 Windows 8 和 Windows Phone 8 API 使用 C# 制作游戏的产品。
但是,如果您不介意使用开源项目,您可以采取一些措施来使用 C# 编写可以使用更新的 Windows 8 和 Windows Phone 8 API 的游戏:
单人游戏
如果您想使用 XNA 的 api 为新的 Windows 8 API 制作游戏,您可以使用 MonoGame(这就是我使用的)。它是一个实现 XNA API 的开源 api,但具有适用于 IOS、Android 和 Windows 8 的插件。这是一个非常好的跨平台选项。 MonoGame 最近开始支持 3D 图形(即 Infinite Flight 、 Armed )。 (注意:我不以任何方式隶属于 MonoGame。)
夏普 DX (DirectX)
如果您希望以 Microsoft 支持的方式制作针对 Windows 8 API 的游戏,您最好的选择是 DirectX。但 Direct X 是一个 C++ API。这也真的很难。
如果您想要制作一款 2D 游戏(例如植物大战僵尸或愤怒的小鸟),那么 Direct X 就太过分了。你最好走 MonoGame 路线。我花了几天时间仔细研究教程并非常努力地理解 Direct X。到那段时间结束时,我获得了在屏幕上绘制单个三角形的能力。 (我的游戏循环和 Sprite 在 MonoGame 中移动的时间相同。)
所以我再说一遍,如果您还不知道 DirectX 并且您正在制作 2D 应用程序,请不要走 DirectX/SharpDX 之路。
不支持 Direct2D 的 Windows Phone 8 进一步阻碍了 DirectX 2D 路线。 DirectX 有一个称为 Direct2D 的子集,用于 2D 渲染。但是,此子集在 Windows Phone 8 上不受支持。“替代品”(目前)是 Direct X 工具包。
如果您仍然完全走在 Direct X 道路上,那么您可以使用 SharpDX 在 C# 中编写它。它是 DirectX 的 C# 包装器,运行良好(尽管我不知道它是否支持 Direct X 工具包)。
总结
它的缺点(对我来说)是微软没有更新他们的 C# 游戏开发 API 来支持 Windows 8 和 Windows Phone 8 中的新东西。但是 MonoGame 允许您使用 XNA API 来做到这一点。它还允许您编写跨平台游戏,所以无论如何它都更好。 (您可以“免费”移植到 IOS 和 Android。)
我的游戏在 MonoGame 中运行良好,到目前为止没有任何问题!
关于c# - 我可以用 C# 编写 Windows 8 RT 游戏吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14445379/