我正在使用 C++ 编写游戏。我想知道如何优化我的游戏循环。例如,我们有一些游戏的主循环如下所示:
while ( gameContinue ) {
if ( SCENE == HELP_SCENE ) {
renderHelpScene();
} else if ( SCENE == SCORE_SCENE ) {
renderScoreScene();
} else if ( SCENE == MAIN_GAME_SCENE ) {
renderMainGameScene();
} // .... and many others scenes
}
我正在考虑如何使这段代码更快更轻。我考虑使用回调,这样我们就不需要很多 if-case。像这样的东西:
typedef void (*callback_function)(void);
callback_function renderFunc;
void renderMainGameScene() {
renderFunc = renderScoreScene(); // set to another scene if we need this
}
void renderScoreScene() {
renderFunc = renderAnyAnotherSceneWeNeedNow();
}
renderFunc = renderMainGameScene();
while ( gameContinue ) {
renderFunc();
}
你怎么看待这件事?你如何组织你的主循环?