我最初使用glfw編寫了我的遊戲。然而,由於缺乏Android可移植性,我必須將所有的glfw代碼替換爲SDL,因爲SDL更具可移植性。我可以在不使用嵌入式while_loop的情況下使用SDL檢查事件嗎?
我的原始遊戲循環使用glfw框架工作非常緊張。這是它:
// game loop
while (!glfwWindowShouldClose(window)) {
//if-else statements that create
//the games state machine
//player input is received here
//rendering done here
}
好的。編寫這個遊戲循環可能有更好的方法,但重點在於遊戲原型的代碼。
但是現在,我正在切換到SDL,我遇到了問題。似乎SDL_Event必須放置在while循環中才能不斷檢查事件。 while_loop在另一個while_loop內。所以,我的代碼如下所示:
while(!Quit) {
SDL_Event event;
while(SDL_PollEvent(&event)) {
//if-else statements that create
//the games state machine
//player input is received here
//rendering done here
}
}
但是一個while_loop內這個while_loop已經完全搞砸了遊戲渲染!我現在變得閃爍了!有沒有其他方法可以像我之前使用glfw一樣在單個while_loop中表示此代碼。或者是否有任何方法可以在不使用嵌入式while_loop的情況下檢查事件
不應該'SDL_PollEvent()'循環只是處理事件?你的渲染代碼應該在外面,在你的外部循環中......原樣,當你處理一個事件時,你只渲染等...... – Dmitri