2

嘿,

我有问题。我正在运行完成游戏所需的所有最后测试,但现在我遇到了一个问题。每当我在竖屏游戏时初始化游戏时,游戏会切换到横屏,但Window.Current.CoreWindow不会更新。因此,Xaml 模板基于纵向设置而不是横向设置创建一个窗口。如何在整个游戏初始化之前更改或更新 CoreWindow?

经过一些研究,我尝试用游戏ARMED 重现它!我知道它使用了 Xaml 模板,即使在那里我也发现了这个问题,即当我以纵向打开它时,窗口在移回横向时不会更新,因此卡在了损坏的界面/游戏中。

提前致谢。

4

1 回答 1

0

CoreWindow 不会自行刷新。它只会在你的 Update() 内部刷新。因此,如果您想在点击 Initializing 部分之前处理对 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 回答