2014-10-18 84 views
2

我正在使用XNA 4.0製作Windows遊戲。我有一個快速的小介紹屏幕,顯示我們的工作室標誌並播放聲音。它持續1.5秒,在窗口模式下看起來和按需要工作。延遲開始XNA遊戲切換到全屏搞亂介紹屏幕

我們希望全屏運行遊戲。因此,在GraphicsDeviceManager實例化之後,我添加的所有內容都是「graphics.IsFullScreen = true」,並且我們設置了首選的後緩衝區維度。當遊戲開始時,視頻卡只會像我的顯示器那樣產生1秒或2秒的切換分辨率等問題 - 這是視頻卡,設備驅動程序和我的顯示器之間所有習慣性和可理解的延遲, XNA正在運行遊戲循環,而這一切都是胡說八道。

這意味着我的介紹開始,運行並在系統開始實際顯示我正在繪製的內容時結束,然後介紹結束。我真正喜歡的是一種方法來檢測視頻卡何時實際呈現,然後開始繪製和播放聲音並計時,假設播放器可以看到它們。在網上搜索,我已經看到了一個「graphics.EnsureDevice()」調用的引用,這個調用似乎已經被棄用,並且在XNA 4.0中不再可用。

回答

0

我想這是一種骯髒的,但你可以火​​了一個線程,不斷檢查,看看是否device參數IsFullscreen設置爲true主動圖形設備,在你的GraphicsDeviceManager.IsFullscreen屬性設置爲true。

一旦設置好了,你就會開始你的遊戲循環。

你也可以用一種只有在你將GraphicsDeviceManager.IsFullscreen設置爲true時纔會觸發線程的方式來編寫它。這樣它將支持這兩種模式。