我在代码中创建了2个计时器。一个是逻辑定时器,每0.017秒更新一次逻辑:
logicTimer = new Timer();
logicTimer.scheduleTask(new Timer.Task() {
@Override
public void run() {
updateLogic();
}
}, 0f, timePerProcessing);
另一个是每隔3秒产生一次障碍:
meteoroidTimer = new Timer();
meteoroidTimer.scheduleTask(new Timer.Task() {
@Override
public void run() {
generateMeteoroids();
}
},1f,3f);
当我暂停游戏并在之后恢复时,我的逻辑计时器仍然有效,但我的障碍计时器并没有。我以为是因为我在我的方法中使用了一个Random对象,我在计时器中调用,但我尝试了一个简单的:
System.out.println("It is showing");
它仍然没有恢复。
暂停和恢复的代码:
@Override
public void pause(){
meteoroidTimer.stop();
logicTimer.stop();
}
@Override
public void resume(){
meteoroidTimer.start();
logicTimer.start();
}
答案 0 :(得分:1)
你不需要在恢复时使用timer.stop和star,因为当你离开app时,libgdx无论如何都会停止渲染/更新,所以你的计时器无论如何都不会更新。