2015-06-20 35 views
-4

我有一段小遊戲的代碼,並在某些時候我的代碼基本上「更新」我的所有對象。對於我的玩家來說,這包括檢查是否有任何移動鍵被按下,然後它應該停止玩家的「更新」功能並移動到下一個物體上。我發現它在播放器「更新」功能上非常慢。提高遊戲更新循環的性能?

基本上,如果我移動我的播放器,我的「全部更新」比它完全不移動時快得多。有沒有一種快速的方法可以讓我的播放器的虛擬「更新」在沒有滿足「if」條件的情況下變得更快(如同在,沒有移動鍵被按下)?

編輯:用C++

+6

絕對沒有辦法說如何改進代碼而不看它(甚至不知道你正在談論哪種編程語言)。 – JJJ

+0

有可能你的事件循環正在等待(阻塞)輸入。如果沒有工作要做,那麼這就是要走的路,而如果用一個幀計數器來衡量,那麼_slowness是虛幻的。如果每一幀都有工作,那麼輪詢可能是更好的選擇。 –

+0

對不起,我使用C++,我沒有意識到這個論壇是爲多種語言。我現在沒有權限訪問我的代碼,但對於我的播放器,更新有四條if語句,一條用於檢查每個箭頭鍵。如果我按下一個箭頭並移動它會更快地完成更新,但如果我不這樣做會變得非常緩慢。我會認爲,如果沒有任何ifs是真的,它只是跳過我的無效更新,並應該移動到下一個對象,但顯然它不這樣工作。 – Xentro

回答

0

你一定要運行一個分析器IM,還有就是提供了很多,選擇一個自己的喜好。它會告訴你多少時間你的程序花費在每個功能上。一旦你知道應該責怪哪些精確的代碼行,通常很容易修復它。