【问题标题】:Metro App with 2D Graphics in C#C# 中带有 2D 图形的 Metro 应用程序
【发布时间】:2015-09-23 13:33:25
【问题描述】:

我已经进行了一些查找,但我无法找到一种用 C# 为 Win8 编写基于 2D tile/sprite 的游戏的好方法。根据MSDN 文档:

您可以使用 C# 和 Visual Basic 等托管代码语言来开发 2D(和轻量级 3D)游戏。

问题是我不知道该怎么做。我想使用 C# 的原因是因为我已经有很多为 Windows Phone 编写的代码,我想重用它们。

谁能指出我将如何为 Win8 编写一个相当高效的 2D tile/sprite MetroUI 游戏?我能找到的唯一东西使用 C++ 和 DirectX。

[编辑]

澄清一下,我不太关心我使用什么(WinRT、DirectX...),只要我可以提交到应用商店,并用 C# 编写我的代码。

【问题讨论】:

  • 我猜metro-ui是指WinRT?看看这个文档download.microsoft.com/download/1/E/4/… 它解释了你编写游戏的选项。简而言之,您可以使用 Direct2D,Direct3D 和一些来自 XNA 的帮助程序也将可用。但是如果你只是想制作一个游戏,在没有 WinRT 的 win8 上运行,这也是可能的,但可能不适用于平板电脑或即将推出的 windows phone 8。WinRT 与 c# 兼容,因此对 directx 的支持可能会扩展到c# 以及
  • 这仍然没有多大帮助。这是非常通用的。
  • 关于您的编辑和评论。你期待什么?您希望能够提交到应用商店,因为您必须使用 WinRT。使用 WinRT 的可能性在本文档中进行了说明。最重要的是,win8 和 winrt 不是最终版本。整个 API 和很多组件还没有完成,可能会完全改变。所以现在你可以使用 winrt 的开发者预览版提供给你的东西,公平地说,这对于游戏开发需求来说并不多。

标签: c# 2d windows-8 microsoft-metro


【解决方案1】:

如果您熟悉 DirectX API,则可以通过http://sharpdx.org 使用 SharpDX。它基本上是将 DirectX API 公开到 C# 中。据我了解,如果您要将应用程序上传到商店,SharpDX 应该没问题并通过合规性,但我会在深入研究之前进一步研究它。

此外,截至目前,并非所有功能都可用(例如 Direct2d 未完全通过 Win8 Metro 认证)。

【讨论】:

  • 据我了解,他想使用 WinRT。而且我不认为 slimdx 已准备好 WinRT,也没有必要。因为在 WinRT 中,directx 将再次可用。
【解决方案2】:

如果您的游戏使用简单的图形,您可以使用Drawing Library for Modern UI,它公开了一个类似 GDI+ 的界面,可用于 XAML/C#/VB.NET Windows 8 现代 UI 应用程序,它通过绘制到 XAML 画布来工作。

【讨论】:

    【解决方案3】:

    如果您正在寻找快速简便的东西,请查看“Physics Helper XAML”项目;

    http://physicshelperxaml.codeplex.com/

    它基于 farseer 引擎,并附带示例应用程序。已经发布了一些使用它的游戏。

    http://www.andybeaulieu.com/Home/tabid/67/EntryID/223/Default.aspx

    【讨论】:

      【解决方案4】:

      看看: [XAML 图像示例] (http://code.msdn.microsoft.com/windowsapps/0f5d56ae-5e57-48e1-9cd9-993115b027b9/sourcecode?fileId=102748&pathId=677969581)

      页面和示例给出了 NineGrid 和 WriteableBitmap 图像操作的一些代码。

      【讨论】:

        【解决方案5】:

        您现在可以使用Win2D(开源,由 Microsoft 为 Metro/WinRT 应用程序发布)提供硬件加速的 2D 图形渲染。

        【讨论】:

          猜你喜欢
          • 2012-07-08
          • 1970-01-01
          • 2012-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-25
          • 2012-01-27
          相关资源
          最近更新 更多