我正在寫一個使用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();
}
你怎麼看待它?你如何組織你的主循環?
如果這是您遊戲中的瓶頸,您應該很高興。 –
爲什麼不用一個虛擬的'render'方法來創建'AbstractScene'?我同意上面的評論。 – Nbr44