2012-02-11 36 views
0

據我瞭解,遊戲繪圖功能每秒發生60次,更新發生的次數可能在這些次數之間。真的嗎?XNA C#繪製時間?

什麼是Draw函數或函數調用的函數的最佳方式,假定在我的情況下Update更新非常快,詢問是否有剩餘時間繪製。或者,如何確定平局是否超過1/60秒。

回答

3

Update()Draw()默認情況下每秒最多發生60次。

要修改Update()呼叫速度,使用

base.IsFixedTimeStep = true; 
base.TargetElapsedTime = new TimeSpan((long)(TimeSpan.TicksPerSecond/600f)); 

其中600是所要求的蜱數目

可替換地,一個人如何找出如果拉伸正在超過1 /第60秒的。

您可以使用GameTime.IsRunningSlowly,如果速度慢,它會自動更改。

public void Draw(GameTime gameTime) { 
    if (gameTime.IsRunningSlowly) { 
     // do stuff 
    } 
} 
+0

@alan是不是很正常的遊戲,使這些東西在選項屏幕設置?像抗鋸齒和解決方案,以及深度領域等?然後繪製方法只是畫出它應該做的事情,如果FPS受到影響,用戶可以關閉設置。 – Alxandr 2012-02-11 16:12:07

+0

其實我已經看到現代獨立遊戲在飛行中做這個。但是這不重要,在這種情況下,它在忙碌中得到解決。 – alan2here 2012-02-11 16:17:42