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