所以在我的遊戲中,我的視圖被繪製出不一致的費率。反過來又會讓它變得糟糕。我已經遇到了無效問題(); meathod。任何簡單的想法 - 無論我看到什麼,我都會被大量密集的代碼所拋棄。如何製作一個穩定的遊戲循環
0
A
回答
1
這聽起來像你的遊戲循環不會考慮到已經之間傳遞的實際時間迭代。
問題是假設在循環迭代之間有一個固定的時間量。但是這個時間可以根據場景中的對象數量,計算機上的其他進程甚至計算機本身而變化。
在遊戲編程中這是一個常見的,有點微妙的錯誤,但它很容易被修復。訣竅是將時間存儲在每個繪製循環的末尾,然後將最後一次更新與當前時間的差異作爲開始。然後,您應根據實際耗用的時間縮放所有動畫和遊戲更改。
我已經寫了更多關於這在我的博客上,而回到這裏:http://laststop.spaceislimited.org/2008/05/17/programming-a-pong-clone-in-c-and-opengl-part-i/
第二部分專門介紹這個問題: http://laststop.spaceislimited.org/2008/06/02/programming-pong-in-c-and-opengl-part-ii/
2
您沒有向我們提供很多信息,特別是代碼。
有幾件事情你可以做的是:
- 設置初始幀頻你觀察你的應用程序中的最低值,在運行,也就是說,如果當前設置爲1/60,但幀速率連續驟降到1/30,設置爲1/30等
- 返修您的繪圖調用以提高效率。
- 嘗試通過乘以矩陣將多個變換組合成單個變換,即如果您需要縮放,平移和旋轉,將這三個矩陣相乘並將該單個變換應用於頂點而不是應用三個單獨的變換。
- 如果不必要,儘量不要遍歷整個列表/數組。
- 嘗試對循環中必須處理的任何內容使用最低級別/最原始的結構,以避免拆箱的開銷。
[於2012年8月27日編輯]
有用鏈接,固定你的時間步長:http://gafferongames.com/game-physics/fix-your-timestep/
相關問題
- 1. 試圖創造一個穩定的遊戲引擎循環
- 2. 回合制遊戲的遊戲循環
- 3. C#簡單的2D遊戲 - 製作基本的遊戲循環
- 4. 開發遊戲 - 如何執行多個遊戲循環?
- 5. 爲遊戲創建一個while循環
- 6. 如何爲遊戲循環制作計時器?
- 7. Win32遊戲循環
- 8. 在遊戲循環
- 9. BlackJack遊戲循環
- 10. Lua,遊戲狀態和遊戲循環
- 11. 文字遊戲 - 遊戲循環
- 12. 簡單的遊戲循環不循環?
- 13. 如何做一個循環模擬的遊戲
- 14. 重構AS3自動遊戲循環到控制一個
- 15. 存儲一個Facebook用戶的遊戲數據遊戲製作
- 16. 導航遊戲循環
- 17. iPhone遊戲循環混合
- 18. 遊戲循環 - 線程
- 19. Java while循環遊戲
- 20. 優化遊戲循環
- 21. 暫停遊戲循環?
- 22. 遊戲循環模擬Golang
- 23. 流水遊戲未循環
- 24. iPhone甲板遊戲循環
- 25. RPG遊戲「回」循環
- 26. 這是一個爲iPhone遊戲做遊戲循環的好方法嗎?
- 27. 遊戲循環/不刷新,一會兒
- 28. 將一個循環插入一個Javascript數字猜謎遊戲
- 29. 製作一個交易卡遊戲XNA
- 30. 如何製作一個循環?
你的問題是不是很描述的問題。你可以發佈一些代碼嗎?最好是你的遊戲引擎的主要部分? – slayton 2012-04-18 20:13:49