我一直在寻找一种方法在其他不继承自Microsoft.Xna.Framework.Game的类中使用GraphicDeviceManager
我正在使用游戏状态管理示例。
我有一个名为“FirstLevel”的类,它本质上是GamePlayScreen,我试图让该类使用GraphicsDeviceManager来执行以下代码;
this.graphics.PreferredBackBufferWidth = 1920;
this.graphics.PreferredBackBufferHeight = 1080;
但它不知道实际上是什么“图形”。
在获取GraphicsDeviceManager并在FirstLevel类中使用它时,我有哪些选择?
我无法继承Microsoft.Xna.Framework.Game,因为我的类已经从GameScreen继承。
我听说你可以使用DrawableGameComponent类来访问GraphicsDeviceManager,例如继承自这个类的类“ScreenManager”。
我无法将Microsoft.Xna.Framework.Game传递给firstLevel的构造函数,因为调用它的其他类需要让GraphicsDeviceManager传入它。
任何帮助人员?
感谢。
答案 0 :(得分:0)
通常将游戏实例作为Game参数传递给GameScreen构造函数。
GraphicDeviceManager用于初始化图形,在游戏中你应该使用游戏实例提供的GraphicsDevice实例。
public class GameScreen {
public Game Game;
public GameScreen(Game game) {
this.Game = game;
}
public void Update()
{
Game.GraphicsDevice....
}
}