メインメニューを開く

差分

MonoGameで解像度を取得する

1,637 バイト追加, 2015年12月31日 (木) 04:37
ページの作成:「MonoGameでは設定を要望した解像度と実際の解像度が異なり、環境に合わせて近似するベストな解像度が選ばれるようになっ...」
[[MonoGame]]では設定を要望した解像度と実際の解像度が異なり、環境に合わせて近似するベストな解像度が選ばれるようになっている。

たとえばGameクラス(MonoGameにおける[[エントリポイント]]に相当するクラス)で以下のように解像度の設定を行ったとする。
<source lang="csharp">
this.GraphicsDeviceManager.IsFullScreen = false;
this.GraphicsDeviceManager.PreferredBackBufferWidth = 720 ;
this.GraphicsDeviceManager.PreferredBackBufferHeight = 1232 ;
this.GraphicsDeviceManager.ApplyChanges();
</source>

しかし実際には異なる解像度が設定されることになる。
実際の解像度は以下のプロパティで取得できる。
<source lang="csharp">
this.GraphicsDevice.PresentationParameters.BackBufferWidth;
this.GraphicsDevice.PresentationParameters.BackBufferHeight;
</source>

なお、解像度を要望する(反映させる)GraphicsDeviceManager.ApplyChangesメソッドは以下の点に注意すること。
* Gameクラスのコンストラクタ内で呼び出しても無反応
* 明示的に呼び出す場合はGameクラスのInitializeメソッドが呼ばれたタイミングで利用可能となる
* 暗黙的にGameクラスのbase.Initialize()の中でも実行されている模様
*: base.Initializeメソッドを呼び出した時点でゲームループが走り出すので注意。

==関連項目==
*[[MonoGame]]

==参考文献==
{{reflist}}

{{stub}}

[[category:Xamarin]]
[[category:MonoMac]]
[[category:MonoGame]]
匿名利用者