【问题标题】:MonoGame and MonoTouch on iOS - Landscape OrientationiOS 上的 MonoGame 和 MonoTouch - 横向
【发布时间】:2011-10-21 16:53:06
【问题描述】:

我们正在使用 MonoGame 为 iOS 和 Windows Phone 7(然后最终是 Android)进行开发。

我们的游戏只能横向运行。

如果在 Windows 上的 WP7 模拟器中运行,我们的图形设备设置就像这样,在我们游戏的 Initialize() 中:

graphics = new GraphicsManager(this);
graphics.PreferredBackBufferWidth = 480;
graphics.PreferredBackBufferHeight = 320;
graphics.SupportedOrientations = DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight;

这不是 WP7 的确切屏幕尺寸(我们现在在右侧有一个黑条,这不是我们最关心的问题),但为我们提供了可以在 iPhone 上运行的正确屏幕尺寸。为了让 iPhone 上的所有内容都能正确显示,我们必须颠倒 backbuffer 的 Width 和 Height,这看起来很奇怪。

我们还发现我们必须在整个游戏过程中反转任何 X/Y 坐标和宽度/高度。

这很麻烦。 MonoGame 到底在做什么?

在处理这两个平台之间的明显调整大小时,我们有什么建议?如果可能,我们希望以某种方式在整个棋盘上使用相同的坐标。

编辑: GitHub 上最新的 2.0 版 MonoGame 不再有方向问题。

TouchPanel 手势尚未完全实现,因此我们只是避免这样做。

【问题讨论】:

  • 不知道 MonoGame 在做什么,但替代方案 ExEn 可以很好地处理这个问题。它完全支持 iOS 上的SupportedOrientations 设置。它将在内部处理所有坐标转换(就像 WP7 一样)。 (全面披露:ExEn 是我的图书馆。)
  • 我将通过该链接通过您的电子邮件地址与您联系,对此我有一些问题。 (MonoGame 肯定有一些问题让我们考虑付费选项)

标签: c# ios xna xamarin.ios monogame


【解决方案1】:

您似乎正在使用 codeplex 上的旧 MonoGame 源,ExEn 实际上是从该源分叉并用于商业化的。最新的 OpenSource MonoGame 源码和正确的主页是https://github.com/mono/MonoGame

能否请您从那里尝试源版本,如果这仍然是一个问题,请告诉我。我们正在为 MonoGame 的 v1.6 版本做准备,如果它仍然是一个问题,我想解决这个问题。

【讨论】:

  • 我正在使用来自 GitHub 的源代码。我刚刚链接到他们的 codeplex 页面,b/c 它更好地解释了项目。
  • 我有一个理论,我明天会测试,我认为如果你只在 Info.plist 中为肖像设置你的应用程序,它可能会起作用。我会对此进行测试,并让您知道我的结果。
  • 顺便说一句,大多数 MonoGame 开发人员都在 irc.gnome.org 或 irc.gimp.org 的 #MonoGame 频道上闲逛。甚至 Miguel De Icaza 也偶尔会过来问我们做得怎么样。
  • 将 Info.plist 设置为肖像有点工作。旋转模拟器一次后,一切都开始正确调整大小和定位。但是该应用程序会因调整错误的大小而启动。我还注意到,使用双击手势似乎会导致应用程序崩溃,尽管它在 Windows 的 WP7 模拟器中运行良好。我将考虑加入 IRC 并尝试 MonoGame 示例,看看它们是否有类似的问题。
  • MonoGame.Samples.TouchGesture 示例在手势方面存在类似问题,在模拟器或设备中似乎不太正常。我现在正在升级到 Lion、最新的 XCode、MonoTouch 等,这是我唯一能想到的可能是个问题。现在我有 Snow Leopard,XCode 3.2.6,但是最新的 MonoTouch/MonoDevelop。
猜你喜欢
  • 1970-01-01
  • 2012-12-31
  • 2010-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多