我開始構建2D遊戲,並對我是否應該在更新函數或渲染函數中執行旋轉感到困惑。在更新函數或渲染函數中執行2D頂點旋轉
問題是這樣的;
我有一個三角形,由三個頂點組成。三角形具有度數的旋轉值。
如果我在更新函數中旋轉頂點,則三角形將永遠旋轉,因爲每次更新都會反覆應用旋轉。
因此,我決定不要旋轉更新函數中的頂點,而是在渲染函數中基於原始頂點執行旋轉。
這有效,但現在我有一個不同的問題。頂點實際上並不是它們看起來像的地方。因此,我不能使用頂點執行碰撞檢測等。
唯一的想法是我可以在更新函數中執行旋轉,但有兩組頂點;一個用於原始頂點,一個旋轉頂點。然後在碰撞檢測計算中使用旋轉的頂點 - 雖然這種方法嗅覺不大但效率很低!
我已經放在一起展示應用旋轉渲染功能的codepen; https://codepen.io/anon/pen/pPRjLq
Use arrow keys to rotate
那麼,我應該旋轉渲染還是更新?如果渲染,那麼我如何保持頂點最新?如果更新,那麼我該如何防止無限旋轉?
任何經驗豐富的人的幫助將不勝感激 - 謝謝!