0

我一直在寻找一种在不从 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 传递给它。

有帮助吗?

谢谢。

4

1 回答 1

0

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

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

public class GameScreen {

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

    public void Update()
    {
       Game.GraphicsDevice....
    }                                
}
于 2012-05-31T00:05:57.513 回答