4

我目前有一个非常简单的 Windows Phone 记忆游戏,我想使用 Xamarin 工具移植到 iOS、Android 和可能的 Win8。

我想将我的业务逻辑集中在一个程序集中,并为每个平台简单地创建 UI。

大多数情况下,代码都是简单的 C#,但我确实使用位图来显示游戏中的卡片。但是,根据我的阅读,不同平台没有标准支持使用位图。

解决这个问题的推荐方法是什么?

我想我必须使用像 MonoGame 这样的东西,但觉得这对我想做的事情来说太过分了。

4

2 回答 2

2

你说你的代码是用 C# 编写的。据我所知,Xamarin 是让 C# 代码在 Android 和 iOS 上运行的唯一方法。Xamarin 有一个免费的入门版,您可能可以使用,但您的应用程序会受到大小限制。达到大小限制后,您需要支付许可证费用。

在您决定为许可证付费后,如果您想将 MonoGame 用于移植,则无需支付其他费用。如果您的游戏已经在使用 XNA 或者您有一些 XNA 经验,我建议您使用 MonoGame。MonoGame 是 XNA 的一个移植版本,专为制作游戏而设计,因此许多与游戏相关的任务变得更加容易。

另一种方法是使用标准的应用程序构建 API 将您的游戏构建为应用程序。这是可能的,但除非您试图通过使用 Xamarin 的免费版来省钱,否则我看不出这样做有什么好处。如果你打算在未来制作更多游戏,你最好还是硬着头皮学习 MonoGame。

在 MonoGame 中使用位图应该不是问题。虽然,您可能需要先将它们转换为 PNG。

使用可移植类库可以将业务逻辑集中在一个程序集中,但由于 PCL 的限制,使用文件共享通常更容易。基本上,每个项目中的文件都有一个软链接。更新文件会同时在所有项目中更新它们,但添加新文件需要您将它们单独添加到每个项目中。这有点维护痛苦,但并不多。

于 2013-05-23T00:05:59.440 回答
0

当然,作为起点,您应该将 UI 和逻辑分开。

为此,我强烈建议您制作console游戏版本。使用控制台只能向应用程序发送带有参数的命令。没有鼠标或实时键盘的使用。所有与 UI 相关的任务都将保留。仅保留要使用的业务逻辑和命令。

那么,你应该试试MonoGame。对于 2D 游戏来说,它足够可靠。更重要的是,如果 IL 代码不是太多,它是免费iOSAndroid

Unity 3D另一种方法是…… 使用该引擎取决于您编写的代码。在某些情况下,可以使用具有共享业务逻辑的游戏引擎。得益于新的Unity 3D 政策,独立游戏开发者可以免费制作和部署他们的游戏。

简而言之,计划是:

  • 实现核心功能(使用控制台 I/O);
  • 然后,为目标平台选择引擎并实现 UI。
于 2013-05-26T16:07:39.733 回答