2014-07-27 28 views
0

如何在不创建新线程的情况下在Qt窗口内运行游戏循环?在Qt窗口中运行游戏循环

我“RunFrame”的方法是这样的:

void GameWindow::RunFrame() 
{ 
    // Update the game time. 
    gameTime.Update(); 
    timeBehind += gameTime.TotalTime() - lastTime; 
    lastTime = gameTime.TotalTime(); 

    while(timeBehind >= targetTimeStep) 
    { 
     Update(); 
     timeBehind -= targetTimeStep; 
    } 

    Draw(); 
    SwapBuffers(); 
} 

正如你所看到的,它运行时就如同获取调用每一个事件循环。有没有一种方法可以让我的窗口中的方法被称为每个事件循环?或者我应该重新设计Qt中定时器的循环?

回答

1

我认为QTimer是一个工作和相对简单的解决方案。它使用多媒体定时器(如果需要)达到毫秒级的分辨率,因此对游戏循环来说是可行的。

+0

是的,QTimer工作正常。谢谢。 – Ben