0

Microsoft.Xna.Framework.Gameから継承しない他のクラスでGraphicDeviceManagerを使用する方法を探していました

ゲームの状態管理の例​​を使用しています。

例から本質的にGamePlayScreenである「FirstLevel」と呼ばれるクラスがあります。そのクラスにGraphicsDeviceManagerを使用して次のようなコードを実行させようとしています。

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

しかし、それは「グラフィックス」が実際に何であるかを知りません。

GraphicsDeviceManagerを入手し、FirstLevelクラスで使用するという点での私のオプションは何ですか?

クラスが既にGameScreenから継承しているため、Microsoft.Xna.Framework.Gameから継承できません。

DrawableGameComponentクラスを使用して、このクラスから継承するクラス「ScreenManager」などのGraphicsDeviceManagerにアクセスできるとどこかで聞いたことがあります。

Microsoft.Xna.Framework.GameをfirstLevelのコンストラクターに渡すことはできません。これを呼び出す他のクラスは、GraphicsDeviceManagerを渡す必要があるためです。

助けてくれる人はいますか?

ありがとう。

4

1 に答える 1

0

通常は、GameScreen コンストラクターにゲーム インスタンスを Game パラメーターとして渡します。

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 に答える