「MonoGameで解像度を取得する」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | [[MonoGame]] | + | [[MonoGame]]では設定を「要望した解像度」と「実際の解像度」が異なり、環境に合わせて近似するベストな解像度が選ばれるようになっている。 |
たとえばGameクラス(MonoGameにおける[[エントリポイント]]に相当するクラス)で以下のように解像度の設定を行ったとする。 | たとえばGameクラス(MonoGameにおける[[エントリポイント]]に相当するクラス)で以下のように解像度の設定を行ったとする。 | ||
− | < | + | <source lang="csharp"> |
− | GraphicsDeviceManager.IsFullScreen = false; | + | this.GraphicsDeviceManager.IsFullScreen = false; |
− | GraphicsDeviceManager.PreferredBackBufferWidth | + | this.GraphicsDeviceManager.PreferredBackBufferWidth = 720 ; |
− | GraphicsDeviceManager.PreferredBackBufferHeight = 1232 ; | + | this.GraphicsDeviceManager.PreferredBackBufferHeight = 1232 ; |
− | GraphicsDeviceManager.ApplyChanges(); | + | 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メソッドを呼び出した時点で[[ゲームループ]]が走り出すので注意。 | |
− | + | ==関連項目== | |
− | + | * [[:category:MonoGame]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | ==参考文献== |
− | + | {{reflist}} | |
− | |||
− | |||
− | |||
− | |||
− | + | {{stub}} | |
− | |||
− | |||
− | [[category: MonoGame]] | + | [[category:MonoGame]] |
− | [[category: MonoMac | + | [[category:MonoMac]] |
− | + | [[category:Xamarin.iOS]] | |
− | [[category: Xamarin.iOS]] | + | [[category:Xamarin.Android]] |
− | [[category: Xamarin.Android]] |