В даний час я починаю вивчати OpenGL в школі, і я днями почав робити просту гру (самостійно, не для школи). Я використовую фріглут і будую його на C, тож для моєї ігрової петлі я справді лише використовував функцію, яку я перейшов, glutIdleFunc
щоб оновити всі малюнки та фізику за один прохід. Це було чудово для простих анімацій, що я не надто переймався частотою кадрів, але оскільки гра, в основному, заснована на фізиці, мені дуже хочеться (потрібно) пов'язати, наскільки швидко вона оновлюється.
Тож моя перша спроба полягала в тому, щоб я функцію, яку я передаю glutIdleFunc
( myIdle()
), відслідковував, скільки часу минуло з попереднього дзвінка на неї, і оновлювати фізику (і в даний час графіку) кожні стільки мілісекунд. Я раніше timeGetTime()
це робив (використовуючи <windows.h>
). І це змусило мене задуматися, чи використання функції простою дійсно хороший спосіб ігрового циклу?
Моє запитання, який кращий спосіб реалізувати ігровий цикл у OpenGL? Чи слід уникати використання функції простою?