我正在編寫一個2D遊戲引擎,遇到了我以前從未見過的東西。我有一個布爾函數來初始化所有圖形相關的東西。我的主要功能非常簡單:C++在運行時跳過函數調用
// Main engine loop
int main(int argc, char *argv[])
{
const int TICKS_PER_SECOND = 60;
const int SKIP_TICKS = 1000/TICKS_PER_SECOND;
const int MAX_FRAMESKIP = 10;
double next_game_tick = timer.getTime();
int loops;
// Initialize everything
if(!init)
{
return 1;
errorLog.writeError("Could not initialize engine components!");
}
// While the user hasn't quit
while(quit == false)
{
loops = 0;
while(timer.getTime() > next_game_tick && loops < MAX_FRAMESKIP)
{
update();
next_game_tick += SKIP_TICKS;
loops++;
}
render();
}
cleanup();
return 0;
}
奇怪的部分是它只是跳過整個像。沒有返回,沒有錯誤輸出,並且我已經將調試消息放在bool函數中,它們也不會輸出。它只是完全跳過該功能。
我試圖在.CPP文件的頂部聲明這兩個函數。主要功能在文件的底部。
有沒有其他人經歷過這種情況,它只是跳過一個函數的整個調用?
謝謝!
「*我有一個布爾函數初始化所有相關設備的圖形。*」這是哪裏?如果它恰好被稱爲'init',那麼你錯過了一些括號...... – ildjarn 2012-04-12 21:08:58
跳過了什麼功能?你有沒有試過在調試器中運行來判斷你的布爾條件是否被滿足? – birryree 2012-04-12 21:09:03
跳過什麼? – ScarletAmaranth 2012-04-12 21:09:34