這對我來說沒有意義。我看了GLFW和Three.js的例子和Cinder的實現,其中有this comment其中有:爲什麼我們在繪製()之前update()?
將所有窗口標記爲可以繪製;這真的只在乎第一 時間,保證在第一次更新()繪製之前觸發()
所有三個庫似乎在做這一點,我不明白爲什麼。更新屏幕上或從未繪製過的東西的位置真的沒有意義嗎?
這裏是我的循環是什麼樣子:
- 繪製(第一)幀
- 交換緩衝
- 更新事件
- 動畫(從事件的輸入),更新邏輯。 ..
- 從頂部
這個順序啓動使得LO對我更有意義,但也許我錯過了一些東西。
零初始化實際上是一個好點;不能相信我沒有那樣的事情。我想在概念上你會初始化設置方法中的所有變量,但是最終我會得到很多重複的代碼。 – superlukas
是的,確切地說。當我更多地考慮它時,最後一幀也是不正確的。如果您在更新之前繪製,那麼您的框架基本上會將對象顯示爲處於最後呈現週期中的「有」狀態。如果您想實現某種播放/暫停功能,那麼如果您暫停了動畫,則不會看到最後一幀,而是前一幀。當你再次開始時,你會首先看到在暫停前應該是最後一個的框架。 – lot