我一直在搜索和搜索,但似乎找不到适合我想做的事情的解决方案,而且我几乎已经到了不得不问它是否可能的地步。
我正在使用 Xamarin Studio 开发 iOS 应用程序。我有几个不同的屏幕设置为 UIViewController,它们运行良好。然而,该应用程序的关键是一款游戏,我想使用 Monogame,因为我以前使用过它并且喜欢使用它。
基本上,我必须从 UIViewController 切换到 Game 类。我可以通过简单地创建一个新的 Game 对象并调用 Run() 来做到这一点,但我不知道如何在需要时退出游戏并将控制权返回给 UIViewController。
有人在应用程序中这样做过吗?我已经尝试了所有我能想到的方法,但似乎没有任何效果。有可能吗?或者我是否需要重做它,以便 Monogame 处理所有内容,甚至是应用程序中不属于实际游戏一部分的所有其他内容?
Thanks!
我觉得有几种奇怪的方法可以在不修改 MonoGame 的情况下工作。
第一个选项:
- 当您的应用程序启动时,启动您的
Game
就像普通的 MonoGame 游戏一样
- 要显示控制器,请将其模态地呈现在游戏之上
- 要返回游戏,请关闭模态控制器
例如,要显示一个控制器:
var gameController = game.Services.GetService(typeof(UIViewController)) as UIViewController;
gameController.PresentViewController(new YourController(), true, null);
然后你就可以打电话DismissViewController
隐藏它。我用它来实现游戏中心的东西。
遗憾的是,如果您想展示 MonoGame 游戏,则必须修改 MonoGame 的工作方式afterUIKit 控制器。
另一种选择是基本上添加一个UIView
在 MonoGame 视图之上。像这样的事情:
var gameController = game.Services.GetService(typeof(UIViewController)) as UIViewController;
var view = new YourView();
gameController.View.AddSubview(view);
如果您采用此路线,则需要添加一些逻辑来暂停游戏。我之前曾在 iAd 等中使用过此选项。您也可以对其他控制器的视图执行此操作,例如上面的选项卡控制器示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)