2014-05-06 54 views
0

我正在創建一個XAML Monogame,我想在SwapChainBackgroundPanel中設置固定播放區域。 我的意思是,想象一下:遊戲屏幕(例如1920x1080)和遊戲區域(例如1280x800)只是其中的一部分,其他空間用於diffrenet信息,如得分,等級,體驗等。,也不同按鈕,像這樣的畫面:如何在xaml monogame中設置固定的遊戲區域?

screen example

回答

0

您可以設置多個渲染目標提請您精靈批次。我會將你的整個遊戲邏輯或區域繪製爲或返回一個所需大小的Texture2D。然後在你的Game1.cs中,或者在任何地方,除了你繪製的UI元素之外,你還可以定位該紋理。

public override Texture2D Draw(SpriteBatch spriteBatch) 
    { 
     spriteBatch.GraphicsDevice.SetRenderTarget(gameRenderTarget); 
     spriteBatch.Begin(SpriteSortMode.FrontToBack, null); 
     sky.Draw(spriteBatch); 
     ground.Draw(spriteBatch); 
     background.Draw(spriteBatch); 
     player.Draw(spriteBatch); 
     spriteBatch.End(); 

     return (Texture2D)finalRenderTarget; 
    } 

既然整個遊戲區域都是一個被操縱的紋理,就像遊戲中的其他一切一樣!您的主遊戲可以預先定義遊戲的佈局,並根據需要渲染每個區域。

另一種選擇是一個繪製打電話給你設置多個渲染目標,只是通過在未來spriteBatch.Draw調用spriteBatch.Begin()和spriteBatch.End之間繪製以前的渲染目標()。

相關問題