【问题标题】:Can I code Windows 8 RT Games in C#我可以用 C# 编写 Windows 8 RT 游戏吗
【发布时间】:2013-01-21 18:59:06
【问题描述】:

是否可以使用 C# 编写 Windows 8 RT 和/或 Windows 8 Phone 游戏?

【问题讨论】:

    标签: c# xna windows-runtime monogame sharpdx


    【解决方案1】:

    我已经对“C# 中的游戏”这件事进行了大量研究,所以我想将其发布给其他人:

    XNA 是制作 C# 游戏的简单方法。您可以在 Windows Store 上发布新的 XNA 游戏,它会正常运行。

    但是,您不能使用 XNA 制作 Windows Phone 8 或 Windows 8 游戏。 (您只能针对 7.1 版的 Windows Phone。)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 图形(即Infinite FlightArmed)。 (注意:我与 MonoGame 没有任何关系。)

    SHARP DX (DirectX)

    如果您想要 Microsoft 支持的方式来制作针对 Windows 8 API 的游戏,那么您最好的选择是 DirectX。但是 Direct X 是一个 C++ API。也真的很难。

    如果您想制作 2D 游戏(例如植物大战僵尸或愤怒的小鸟),那么 Direct X 就显得多余了。你最好走 MonoGame 路线。我花了几天时间研究教程并努力理解 Direct X。在那段时间结束时,我获得了在屏幕上绘制单个三角形的能力。 (同样的时间让我的游戏循环和精灵在 MonoGame 中四处移动。)

    所以我重复一遍,如果您还不了解 DirectX,并且您正在制作 2D 应用程序,请不要走 DirectX/SharpDX 之路。

    DirectX 2D 路线进一步受到不支持 Direct2D 的 Windows Phone 8 的阻碍。 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 中进展顺利,到目前为止没有任何问题!

    【讨论】:

    • “但是,您不能使用 XNA 制作 Windows Phone 8 或 Windows 8 游戏。(您只能针对 Windows Phone 7.1 版。)XNA 不支持这些操作系统的新 API。但是,Windows Phone 8 和 Windows 8 都将运行使用旧 API 制作的 XNA 应用程序。”令人困惑-您能否澄清和/或提供更详细解释这一点的链接?对我来说,它读起来像“Windows 8/Phone8 不运行 XNA,但它们确实使用旧 API 运行 XNA”——这个旧 API 是什么? XNA 3.0? 4.0?他们是否发布了比 4.0 更新的东西?
    • @ToddersLegrande - 我更新了帖子以澄清。 XNA 4.0 现在是“旧的”。那是因为它不支持 API 与微软当前的操作系统进行交互。但是,XNA 仍然可以运行,只是不使用新操作系统附带的任何新功能。
    • 我不认为您可以在 Windows RT 上运行 XNA 应用程序,除非您实际使用 MonoGame 而不是 XNA。另一种选择可能是使用 Unity3D。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2021-09-21
    • 2018-08-24
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多