将CocosSharp游戏与UIViewControllers混合使用

时间:2015-06-10 01:23:50

标签: ios xamarin cocos2d-x monogame cocossharp

我正在创建一个带有几个其他原生屏幕的CocosSharp游戏,我将使用原生iOS UIViewController实现这些游戏。流程如下:

  1. 在应用启动时,我使用自定义主菜单创建UINavigationViewController和初始视图:

    public override void FinishedLaunching(UIApplication app)
    {
        MainWindow = new UIWindow(UIScreen.MainScreen.Bounds);
        var rootViewStoryboard = UIStoryboard.FromName("GameMenu", null);
        var rootView = rootViewStoryboard.InstantiateViewController("GameMenu");
        var navigationController = new UINavigationController(rootView);
        MainWindow.RootViewController = navigationController;
        MainWindow.MakeKeyAndVisible();
    }
    
    public partial class GameMenu : UIViewController
    {
        public GameMenu(IntPtr handle)
            : base(handle)
        {
        }
    
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            btnStartGame.TouchUpInside += (sender, e) => NavigationController.PresentViewController(new GameScene(), false);
        }
    }
    
  2. 其中一个动作导致另一个UIViewController(模态),其中创建了CocosSharp游戏:

    public partial class GameScene:UIViewController {     公共GameScene()     {     }

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        _application = new CCApplication();
        _application.ApplicationDelegate = new GameAppDelegate();
        _application.StartGame();
        _application.MainWindow.DisplayStats = true;
    
        OnStopGame();
    }
    

    }

  3. 最后在某些事件中(在我的情况下,在5秒内)我试图完成游戏并返回主菜单:

    public async Task OnStopGame()
    {
       await Task.Delay(5000);
       _application.ExitGame();
       NavigationController.DismissViewController(false, null);
    }
    
  4. 结果我得到空黑屏,背景音乐继续运行,没有显示主菜单。

    我应该如何正确地从CocosSharp游戏导航到本机控制器并返回?他们可以同时生活吗?

0 个答案:

没有答案