是否可以使用 C# 编写 Windows 8 RT 和/或 Windows 8 Phone 游戏?
1 回答
我已经对“C# 中的游戏”这件事进行了大量研究,所以我想我会把它发布给其他人:
XNA 是制作 C# 游戏的简单方法。您可以在 Windows Store 上发布新的 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 没有提供用 C# 为新的 Windows 8 和 Windows Phone 8 API 制作游戏的产品。
但是,如果您不介意使用开源项目,您可以使用 C# 编写可以使用更新的 Windows 8 和 Windows Phone 8 API 的游戏:
独角兽
如果您想使用 XNA 的 api 为新的 Windows 8 API 制作游戏,您可以使用 MonoGame(这是我使用的)。它是一个实现 XNA API 的开源 api,但具有适用于 IOS、Android 和 Windows 8 的插件。这是一个非常好的跨平台选项。MonoGame(即无限飞行、武装)最近支持 3D 图形。(注意:我与 MonoGame 没有任何关系。)
夏普 DX (DirectX)
如果您想要 Microsoft 支持的方式来制作针对 Windows 8 API 的游戏,您最好的选择是 DirectX。但是 Direct X 是一个 C++ API。这也真的很难。
如果您想制作 2D 游戏(例如《植物大战僵尸》或《愤怒的小鸟》),那么 Direct X 就太过分了。你最好走 MonoGame 路线。我花了几天时间研究教程并努力理解 Direct X。在那段时间结束时,我获得了在屏幕上绘制单个三角形的能力。(同样的时间让我的游戏循环和精灵在 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 中进展顺利,到目前为止没有任何问题!