Heey,
我遇到了问题。我正在完成我为完成游戏而必须做的所有最后一次测试,但现在我碰到了一个问题。每当我以纵向方式举行游戏时初始化游戏时,游戏都会转换为横向,但Window.Current.CoreWindow
将不会更新。因此,Xaml模板基于纵向设置而不是横向设置创建窗口。如何在整个游戏初始化之前更改CoreWindow或更新它?
经过一些研究后,我尝试使用游戏ARMED!再现它,我知道使用Xaml模板甚至在那里我发现了这个问题,当我以纵向打开它时,窗口在移回景观时不会更新所以被困在一个破碎的界面/游戏。
提前致谢。
答案 0 :(得分: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的任何变化,这些变化可能同时发生(主要是方向变化)并处理它们,这样当我的游戏初始化时它将以适当的完整景观分辨率运行
它可能不是最干净的解决方案,但它可以完成我的工作。