从另一个类获取GraphicDeviceManager

时间:2012-05-30 22:11:47

标签: c# graphics xna

我一直在寻找一种方法在其他不继承自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传入它。

任何帮助人员?

感谢。

1 个答案:

答案 0 :(得分:0)

通常将游戏实例作为Game参数传递给GameScreen构造函数。

GraphicDeviceManager用于初始化图形,在游戏中你应该使用游戏实例提供的GraphicsDevice实例。

public class GameScreen {

    public Game Game;
    public GameScreen(Game game) {
        this.Game = game;
    }   

    public void Update()
    {
       Game.GraphicsDevice....
    }                                
}