【发布时间】: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