2012-03-13 73 views
1

我試圖讓我的XNA遊戲在WP7上的幀速率高達60 fps。它似乎鎖定在30fps左右。我嘗試過這種改變,但沒有什麼區別。WP7上的XNA性能

PresentationParameters.PresentationInterval = PresentInterval.One 

有什麼想法?

回答

5

你可以改變固定的時間步長是XNA默認爲:

// 166666 ticks is 16.6ms, which is 60hz 
game.TargetElapsedTime = new TimeSpan(166666) // 'game' refers to your instance of XNA.Game 

下面是對功能文檔: http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.targetelapsedtime.aspx

或者,如果你只是想關掉固定時間步,嘗試設置固定時間步長爲false:

game.IsFixedTimeStep = false // 'game' refers to your instance of XNA.Game 

下面是對功能文檔: http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.isfixedtimestep.aspx

XNA默認設置爲true,所以你會看到一個固定的時間步,直到你設置它,否則。

當然,性能問題也可能導致您保持在30 fps左右。您可能會看到V-sync阻止幀與手機的顯示同步,或者顯示器可能被限制爲30 fps(不太可能),或者如果您的遊戲每幀的時間超過16.6ms,則V同步可能會將其保持在30 fps以保持與顯示器同步。在30 fps時,您的遊戲將渲染顯示刷新的每一幀。但是,如果V-sync被禁用,並且遊戲運行速度爲50 fps,則在刷新顯示時您的遊戲只會部分渲染,最終會以screen tearing結束。