如何在类中更改xna屏幕的标题

时间:2014-12-14 14:55:09

标签: c# xna

我想在Map类中更改屏幕的标题。 我知道在Game1您可以使用
this.Window.Title = "Level1";

我认为我将GameWindow作为参数放在我的Map类中的LoadContent方法中。

public class Map 
{
     public void LoadContent(ContentManager content, GraphicsDevice graphicsDevice, GameWindow gamewindow)
     {
       switch (currentLevel) 
       { 
            case 1:
                texture1 = content.Load<Texture2D>("skyLine");
                song = content.Load<Song>("music");
                gamewindow.Title = "Level 1";
                MediaPlayer.Play(song);
                break;
       }
    }
}

在我的Game1中,我试图创建一个新的GameWindow实例,但你不能这样做,因为它是一个抽象类。

因此,当我运行游戏时,会在NullReferenceExceptionError上抛出gameWindow.Title。那是因为我无法制作GameWindow的实例。

是否有(不同的)解决方案来改变班级中的屏幕标题?

从Map调用LoadContent的代码:

map.LoadContent(this.Content, GraphicsDevice, this.Window);

1 个答案:

答案 0 :(得分:2)

感谢@ itsme86,我使用了以下代码:

Game1中的方法调用:map.LoadContent(this.Content, GraphicsDevice, this);

地图类中的

LoadContent方法:

public class Map 
{
     public void LoadContent(ContentManager content, GraphicsDevice graphicsDevice, Game1 game)
     {
         switch (currentLevel) 
         { 
              case 1:
                   texture1 = content.Load<Texture2D>("skyLine");
                   song = content.Load<Song>("music");
                   game.Window.Title = "Level 1";
                   MediaPlayer.Play(song);
                break;
       }
    }
}