MonoGameで解像度を取得する
2017年11月24日 (金) 06:28時点におけるimported>Administratorによる版
MonoGameでは設定を「要望した解像度」と「実際の解像度」が異なり、環境に合わせて近似するベストな解像度が選ばれるようになっている。これはAndroid端末などでは液晶の解像度が事前に決まっており、こちらの要望は基本的に無視されるためである。
たとえばGameクラス(MonoGameにおけるエントリポイントに相当するクラス)で以下のように解像度の設定を行ったとする。
this.GraphicsDeviceManager.IsFullScreen = false;
this.GraphicsDeviceManager.PreferredBackBufferWidth = 720 ;
this.GraphicsDeviceManager.PreferredBackBufferHeight = 1232 ;
this.GraphicsDeviceManager.ApplyChanges();
これがWindowsやMacで実行した場合は余程のことが無い限り要望した解像度になるだろう。 しかしAndroidなどでは異なる解像度が設定されることがある(詳細は「MonoGameで解像度を設定する」を参照)。 実際の解像度は以下のプロパティで取得できる。
this.GraphicsDevice.PresentationParameters.BackBufferWidth;
this.GraphicsDevice.PresentationParameters.BackBufferHeight;
なお、解像度を要望する(反映させる)GraphicsDeviceManager.ApplyChangesメソッドは以下の点に注意すること。