你最討厭現代遊戲循環?遊戲循環能夠得到改善嗎?還是隻有更好的選擇,比如事件驅動架構?最大的牛肉與遊戲循環
回答
好像這真的應該是一個CW ...
我採取了畢業生級遊戲引擎編程課程,現在,他們正在與遊戲循環的方式堅持。當然,這並不意味着它是唯一的/最好的解決方案,但它肯定是符合邏輯的。使用循環可以確保所有遊戲系統在不請求自己的定時中斷或其他事件的情況下運行。控制可以是集中的:在我目前的項目中,我有一個GameManager
類,每個幀依次循環遍歷每個註冊對象的Update(float deltaTime)
函數。我不必調試事件系統或設置定時信號,我只是使用循環來調用一系列函數。沒有麻煩,沒有大驚小怪。
要回答你最討厭什麼的問題,循環方法在邏輯上適合自由使用繼承和多態,這可能會膨脹對象的大小/複雜性。如果你不小心,這可能是一個溫和的 - 可怕的陷阱。如果你很小心,這可能不是問題。
無論遊戲中是否存在任何事件,遊戲都應該以固定的速度吸引自己並更新它,所以我不認爲放棄遊戲循環是可能的。不過我會想知道是否有人可以想到任何其他遊戲循環的替代方案。
我想知道是否有可能用事件驅動架構來替代它。但我不確定這是如何工作的。 – 2011-02-19 04:59:01
通常情況下,事件驅動的體系結構對遊戲最有效(只有在用戶需要完成某件事情時纔會執行某些操作)。但是,你仍然需要一個線程不斷重新繪製世界。
爲了完全基於事件,你可以產生一個額外的線程,它除了每x毫秒將一個CPUTick事件放入你的事件隊列中。
在JavaScript中,這通常是更自然的途徑,因爲您可以很容易地創建一個額外的'線程',通過setInterval()向您發送事件。或者,如果你已經在包含你的遊戲的框架中有一個循環 - 比如JS在瀏覽器中,或者Python已經扭曲了 - 你可以告訴循環者以固定的時間間隔回叫你。例如:
function gameLoop() {
// update, draw...
}
window.setInterval(gameLoop, 1000/fps);
- 1. 回合制遊戲的遊戲循環
- 2. 奶牛和公牛遊戲
- 3. JAVA遊戲循環?
- 4. Win32遊戲循環
- 5. Javascript遊戲循環
- 6. 在遊戲循環
- 7. BlackJack遊戲循環
- 8. Lua,遊戲狀態和遊戲循環
- 9. 文字遊戲 - 遊戲循環
- 10. 簡單的遊戲循環與C++
- 11. 大型3D遊戲有多個遊戲循環嗎?
- 12. Java Swing'遊戲循環'最佳實踐
- 13. 簡單的遊戲循環不循環?
- 14. 遊戲循環的問題
- 15. 範圍問題與setInterval遊戲循環
- 16. Haskell中IO與遊戲循環
- 17. 遊戲主循環邏輯
- 18. Java while循環遊戲
- 19. 無限遊戲循環
- 20. HTML帆布遊戲循環
- 21. 導航遊戲循環
- 22. 遊戲循環控制
- 23. 遊戲循環模擬Golang
- 24. Android:同步遊戲循環
- 25. 遊戲循環 - 線程
- 26. 平滑Android遊戲循環
- 27. RPG遊戲「回」循環
- 28. 流水遊戲未循環
- 29. iPhone遊戲循環混合
- 30. 優化遊戲循環
難道是我,還是這個問題比討論更多? – 2011-02-19 12:01:13