「MonoGameで解像度を設定する」の版間の差分
ナビゲーションに移動
検索に移動
2行目: | 2行目: | ||
MonoGameで画面解像度を変更するにはGraphicsDeviceManagerインスタンスのPreferredBackBufferWidthプロパティおよびPreferredBackBufferHeightプロパティで設定を行う。 | MonoGameで画面解像度を変更するにはGraphicsDeviceManagerインスタンスのPreferredBackBufferWidthプロパティおよびPreferredBackBufferHeightプロパティで設定を行う。 | ||
− | なお、[[Xamarin.Mac]]などでウインドウ表示であれば設定値がそのまま使われるが、[[Xamarin.Android]] | + | なお、[[Xamarin.Mac]]などでウインドウ表示であれば設定値がそのまま使われるが、[[Xamarin.Android]]などでフルスクリーン環境の場合はディスプレイ側が対応する「もっとも近い」解像度に自動変更されるので注意すること。つまり「変更」ではなく「要望」と言った方が正しい。 |
<source lang="csharp"> | <source lang="csharp"> | ||
public class Game1 : Game | public class Game1 : Game | ||
25行目: | 25行目: | ||
} | } | ||
</source> | </source> | ||
− | + | また、解像度を要望する(反映させる)GraphicsDeviceManager.ApplyChangesメソッドは以下の点に注意すること。 | |
* Gameクラスのコンストラクタ内で呼び出しても無反応 | * Gameクラスのコンストラクタ内で呼び出しても無反応 | ||
* 明示的に呼び出す場合はGameクラスのInitializeメソッドが呼ばれたタイミングで利用可能となる | * 明示的に呼び出す場合はGameクラスのInitializeメソッドが呼ばれたタイミングで利用可能となる |
2017年3月24日 (金) 07:28時点における版
実装例
MonoGameで画面解像度を変更するにはGraphicsDeviceManagerインスタンスのPreferredBackBufferWidthプロパティおよびPreferredBackBufferHeightプロパティで設定を行う。
なお、Xamarin.Macなどでウインドウ表示であれば設定値がそのまま使われるが、Xamarin.Androidなどでフルスクリーン環境の場合はディスプレイ側が対応する「もっとも近い」解像度に自動変更されるので注意すること。つまり「変更」ではなく「要望」と言った方が正しい。
public class Game1 : Game
{
GraphicsDeviceManager graphics;
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Content";
}
protected override void Initialize()
{
// TODO: Add your initialization logic here
graphics.PreferredBackBufferWidth = 360;
graphics.PreferredBackBufferHeight = 240;
graphics.ApplyChanges();
base.Initialize();
}
}
また、解像度を要望する(反映させる)GraphicsDeviceManager.ApplyChangesメソッドは以下の点に注意すること。
- Gameクラスのコンストラクタ内で呼び出しても無反応
- 明示的に呼び出す場合はGameクラスのInitializeメソッドが呼ばれたタイミングで利用可能となる
- 暗黙的にGameクラスのbase.Initialize()の中でも実行されている模様
- base.Initializeメソッドを呼び出した時点でゲームループが走り出すので注意。