「MonoGameで解像度を設定する」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator |
imported>Administrator (→関連項目) |
||
(同じ利用者による、間の1版が非表示) | |||
34行目: | 34行目: | ||
== 関連項目 == | == 関連項目 == | ||
− | * [[ | + | * [[MonoGame (Xamarin.Android)で初期解像度がおかしい機種の対策]] |
+ | * [[MonoGameで解像度を取得する]] | ||
== 参考文献 == | == 参考文献 == |
2017年12月6日 (水) 10:28時点における最新版
実装例[編集 | ソースを編集]
MonoGameで画面解像度を変更するにはGraphicsDeviceManagerインスタンスのPreferredBackBufferWidthプロパティおよびPreferredBackBufferHeightプロパティで設定を行う。
なお、Xamarin.Macなどでウインドウ表示であれば設定値がそのまま使われるが、Xamarin.Androidなどでフルスクリーン環境の場合はディスプレイ側が対応する「もっとも近い」解像度に自動変更されるので注意すること。つまり「変更」ではなく「要望」と言った方が正しい。実際に設定された解像度を取得するには「MonoGameで解像度を取得する」の項目を参照。
public class Game1 : Game
{
GraphicsDeviceManager graphics;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize()
{
// 要望する解像度を設定する
graphics.PreferredBackBufferWidth = 360;
graphics.PreferredBackBufferHeight = 240;
// ApplyChangesはInitializeメソッド呼び出し以降で利用可能になる。
// コンストラクタで呼んでも無反応なので注意すること。
graphics.ApplyChanges();
base.Initialize();
}
}
また、解像度を要望する(反映させる)GraphicsDeviceManager.ApplyChangesメソッドは以下の点に注意すること。
- Gameクラスのコンストラクタ内で呼び出しても無反応
- 明示的に呼び出す場合はGameクラスのInitializeメソッドが呼ばれたタイミングで利用可能となる
- 暗黙的にGameクラスのbase.Initialize()の中でも実行されている模様
- base.Initializeメソッドを呼び出した時点でゲームループが走り出すので注意。