2012-12-06 171 views
2

我非常感興趣知道,如果我把所有精靈動畫/運動邏輯放在Draw方法內而不是Update方法和update方法只是管理觸摸和其他事件。 1)任何與遊戲動畫/邏輯性能有關的問題? 2)遊戲畫面不會按預期行事嗎?XNA - 更新方法vs繪製方法

回答

7

繪製和更新方法之間基本上有一個很大的區別。繪圖方法隨着機器的性能循環運行,所以如果計算機速度很慢,如果計算機性能低下,則可能每秒鐘得到30個週期。這也意味着週期不固定,因此一秒鐘可能會從繪製方法中獲得30個週期,並且下一次可能會獲得40.

更新方法具有固定的週期數,所以這意味着遊戲玩法不會因爲電腦速度慢而放慢速度。

將精靈動畫邏輯放入繪製方法內不是問題。這僅僅意味着動畫將以機器可以處理的速度運行。但是,如果動畫直接影響遊戲中的其他邏輯,我建議將代碼放入更新線程中。

+0

在這種情況下(30 fps或40 fps並且沒有同步b/w方法),如果我需要在更新和繪圖之間運行1到1,可以做什麼? – Yogesh

+0

@Yogesh嘗試將所有繪圖代碼移動到更新方法中,雖然這是不常見的並且不推薦。 – user1306322

+1

@Yogesh除非您開始丟棄幀(默認配置),否則'Draw'將始終以您的'Update'方法以1:1運行。一般來說,你的邏輯應該足夠靈活來應付'Draw'不被調用。 –