我在代码中创建了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();
}
最佳答案
您不需要使用timer.stop并在履历表上加注星标,因为当您离开应用程序时,libgdx无论如何都会停止渲染/更新,因此无论如何您的定时器都不会更新。