2

ねえ、

問題が発生しました。ゲームを完成させるために必要な最後のテストをすべて実行していますが、問題が発生しました。ゲームを縦向きにしてゲームを初期化すると、ゲームは横向きに切り替わりますが、Window.Current.CoreWindow更新されません。そのため、Xaml テンプレートは、横長の設定ではなく縦長の設定に基づいてウィンドウを作成します。ゲーム全体が初期化される前に CoreWindow を変更または更新するにはどうすればよいですか?

いろいろ調べた結果、 ARMEDというゲームで再現してみました!Xamlテンプレートを使用していることはわかっていますが、縦向きで開いたときに横向きに戻ったときにウィンドウが更新されず、壊れたインターフェイス/ゲームで立ち往生するという問題が見つかりました。

前もって感謝します。

4

1 に答える 1

0

CoreWindow は自動的に更新されません。Update() 内でのみ更新されます。そのため、初期化部分に到達する前に CoreWindow への変更を処理したい場合は、それらを自分で処理する必要があります。

_coreWindow = Window.Current.CoreWindow;

// Create the game.
_game = XamlGame<Main>.Create("", _coreWindow, this);

_coreWindow.Activate();
_coreWindow.Dispatcher.ProcessEvents(CoreProcessEventsOption.ProcessAllIfPresent);

ここでは、現在の CoreWindow でゲームを作成していることがわかります。ゲームのコンストラクターが完了したら、その間に発生した可能性のある CoreWindow の変更 (主に向きの変更) を手動でチェックして処理し、それらを処理して、ゲームの初期化時に適切なフル ランドスケープ解像度で実行されるようにします。 .

それは最もクリーンなソリューションではないかもしれませんが、私の場合はうまくいきます。

于 2013-10-08T14:13:01.303 に答える