暂停游戏循环?

时间:2014-12-07 00:12:24

标签: java clock

所以我有这段代码,在游戏循环中设置dt(clock类型为Clock):

    // set delta time
    float currentTime = clock.getElapsedTime().asSeconds();
    float dt = currentTime - lastTime;
    // ...
    lastTime = currentTime;

但是,当游戏暂停时,时钟仍会运行。因此,当游戏暂停时,dt会变大。我怎么能避免这个?

1 个答案:

答案 0 :(得分:0)

一种可能的,基本的方法可能类似于以下方法(伪代码):

var elapsed = current - previous;
if(elapsed > clampOverElapsed) {
    elapsed = clampOverElapsed;
}

clampOverElapsed设置在某个合理值的位置,例如25 ms 这样,通过在循环中控制该控件,您应该很好地处理暂停以及不合理的更长迭代,而不关心您的大elapsed值的来源是什么,这样您就不必明确

相关问题