我想在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);
答案 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;
}
}
}