我正在編寫Windows 8遊戲,使用MonoGame 3.01和SwapChainBackgroundPanel與XAML集成。 我的資產針對16:9寬高比進行了優化,但由於Win8設備分辨率的差異,我還需要支持4:3。MonoGame支持多種分辨率Windows 8 XAML應用程序
目前我面臨以下問題:
拖動遊戲給第二監視器不調整屏幕
_graphics.PreferredBackBufferWidth = (int)width; _graphics.PreferredBackBufferHeight = (int)height; _graphics.ApplyChanges();
在SwapChainBackgroundPanel(GamePage)I至大小發生反應改變
void GamePage_SizeChanged(object sender, SizeChangedEventArgs e)
{
Game.SetBackBuffer(e.NewSize.Width, e.NewSize.Height);
}
但沒有任何反應,似乎只有初始化(遊戲初始化後)後臺緩衝區更改已應用。
- 有沒有辦法保留高寬比而不是拉伸填充,例如。通過信箱?
在Windows 8上支持多種分辨率(包括Snapped視圖)的最佳做法是什麼?
編輯:只是爲了澄清 - 正在執行GamePage_SizeChanged它只是_graphics.ApplyChanges(),似乎沒有任何效果
謝謝,我知道在哪裏對大小變化做出反應,但問題是更改PreferredBackBufferWidth沒有效果。我不知道如何在不進行手動轉換的情況下製作內容縮放比例保持高寬比 。 – 2013-03-11 11:20:58
對於Windows 8,PreferredBufferWidth在MonoGame中預設爲1366,760。您可以訪問當前的GraphicDevice和事件處理程序的開始和結束DeviceChanging,以便您可以在那裏更改設備大小。讓我測試在我的遊戲中改變這一點,我會發布代碼。 – Taraew 2013-03-11 20:08:42