メインメニューを開く

差分

MonoGameで解像度を設定する

1,082 バイト追加, 2017年12月6日 (水) 10:28
== 実装例 ==
GraphicsDeviceManagerインスタンスのPreferredBackBufferWidthプロパティおよびPreferredBackBufferHeightプロパティで画面解像度を設定できる。なお、MonoGameで画面解像度を変更するにはGraphicsDeviceManagerインスタンスのPreferredBackBufferWidthプロパティおよびPreferredBackBufferHeightプロパティで設定を行う。 なお、[[Xamarin.Mac]]などでウインドウ表示であれば設定値がそのまま使われるが、Xamarinなどでウインドウ表示であれば設定値がそのまま使われるが、[[Xamarin.Androidなどでフルスクリーン環境の場合はディスプレイ側が対応するもっとも近い解像度に自動変更されるので注意すること。Android]]などでフルスクリーン環境の場合はディスプレイ側が対応する「もっとも近い」解像度に自動変更されるので注意すること。つまり「変更」ではなく「要望」と言った方が正しい。実際に設定された解像度を取得するには「[[MonoGameで解像度を取得する]]」の項目を参照。
<source lang="csharp">
public class Game1 : Game
protected override void Initialize()
{
// TODO: Add your initialization logic here要望する解像度を設定する
graphics.PreferredBackBufferWidth = 360;
graphics.PreferredBackBufferHeight = 240;
// ApplyChangesはInitializeメソッド呼び出し以降で利用可能になる。
// コンストラクタで呼んでも無反応なので注意すること。
graphics.ApplyChanges();
}
</source>
また、解像度を要望する(反映させる)GraphicsDeviceManager.ApplyChangesメソッドは以下の点に注意すること。
* Gameクラスのコンストラクタ内で呼び出しても無反応
* 明示的に呼び出す場合はGameクラスのInitializeメソッドが呼ばれたタイミングで利用可能となる
* 暗黙的にGameクラスのbase.Initialize()の中でも実行されている模様
*: base.Initializeメソッドを呼び出した時点で[[ゲームループ]]が走り出すので注意。
== 関連項目 ==
* [[MonoGame (Xamarin.Android)で初期解像度がおかしい機種の対策]]
* [[MonoGameで解像度を取得する]]
== 参考文献 ==
匿名利用者