2012-05-30 48 views
0

我一直在尋找一種方式來使用GraphicDeviceManager其他類從Microsoft.Xna.Framework.Game從另一個類

我使用的遊戲狀態管理的例子,不繼承獲得GraphicDeviceManager。我得到了一個名爲「FirstLevel」的類,它是這個例子中的基本的GamePlayScreen,我試圖讓該類使用GraphicsDeviceManager來完成下面的代碼;

 this.graphics.PreferredBackBufferWidth = 1920; 
     this.graphics.PreferredBackBufferHeight = 1080; 

但它不知道「圖形」實際上是什麼。

對於獲取GraphicsDeviceManager並在FirstLevel類中使用它,我有哪些選擇?

我無法從Microsoft.Xna.Framework.Game繼承,因爲我的類已經從GameScreen繼承。

我聽說somwhere可以使用DrawableGameComponent類來訪問GraphicsDeviceManager,例如繼承自此類的類「ScreenManager」。

我無法將Microsoft.Xna.Framework.Game傳遞給firstLevel的構造函數,因爲調用它的其他類需要將GraphicsDeviceManager傳遞給它。

任何幫助傢伙?

謝謝。

回答

0

通常傳遞給您的GameScreen構造函數的遊戲實例作爲遊戲參數。

GraphicDeviceManager用於初始化圖形,在遊戲中您應該使用遊戲實例提供的GraphicsDevice實例。

public class GameScreen { 

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

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

爲建議而歡呼,我最終將「遊戲遊戲」傳遞到幾乎所有的課程中,讓它無誤地工作,非常感謝 – user1427114