WP8的单机游戏-停用时加载暂停屏幕

本文关键字:加载 暂停 屏幕 单机游戏 WP8 | 更新日期: 2023-09-27 17:58:31

我正在尝试处理用户按下启动按钮或搜索按钮并将应用程序设置为休眠状态的情况。我基本上希望它加载一个暂停屏幕,这样当用户返回应用程序时,就会显示暂停屏幕。

当我试图在停用的方法中创建新屏幕时,我遇到了困难——我无法加载任何内容,因为内容管理器之类的东西已经被禁用。

有办法解决这个问题吗?即,我可以在停用的方法中加载新内容吗?

这是我迄今为止的代码:

    void GameDeactivated(object sender, DeactivatedEventArgs e)
    {
        // Mute the game.
        //MediaPlayer.IsMuted = true;
        //AudioManager.IsMuted = true;
        GameScreen[] screens = mScreenManager.GetScreens();
        if(screens[screens.Length - 1] is GameplayScreen)
        {
            Debug.WriteLine("I am here and the last screen is a gameplay one");
            GameplayScreen gs = (GameplayScreen) screens[screens.Length - 1];
            Debug.WriteLine("here and " + gs.Level.LevelData.Index);
            //AudioManager.PauseSong();
            // This is the error line as when it tries to load the new screen it gets null reference exceptions.
            //mScreenManager.AddScreen(new PauseScreen(gs.Level.LevelData), null);
        }

        base.OnDeactivated(sender, e);

    }

WP8的单机游戏-停用时加载暂停屏幕

我鼓励您实现一些预内容加载,这样它将解决您的OnDeactivate问题。在某些情况下,加载"随需应变"会使你的游戏"滞后",即新怪物第一次渲染-内容正在加载->对磁盘上内容文件的调用->低帧/秒。您还可以添加一些类似于wasGameDeactivated的布尔值,并在OnGameActivated中加载暂停状态。