小编Mag*_*ler的帖子

是否可以在不使用嵌入式while_loop的情况下使用SDL检查事件?

我最初使用glfw编写游戏。但是由于缺少android的可移植性,我不得不用SDL替换所有glfw代码,因为SDL更易于移植。

我使用glfw框架工作的原始游戏循环非常出色。这里是:

// game loop
while (!glfwWindowShouldClose(window)) {
    //if-else statements that create  
    //the games state machine
    //player input is received here
    //rendering done here
}
Run Code Online (Sandbox Code Playgroud)

好。编写此游戏循环可能有更好的方法,但重点是适用于游戏原型的代码。

但是,现在我切换到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
    }
}
Run Code Online (Sandbox Code Playgroud)

但是while_loop中的while_loop完全弄乱了游戏的渲染!我现在忽隐忽现!是否有其他方法可以像我之前使用glfw一样在单个while_loop中表达此代码。还是有任何方法可以在不使用嵌入式while_loop的情况下检查事件

c c++ sdl glfw game-loop

0
推荐指数
1
解决办法
423
查看次数

标签 统计

c ×1

c++ ×1

game-loop ×1

glfw ×1

sdl ×1