Java LibGDX定时器不';在android上恢复游戏后,无法启动
我在代码中创建了两个计时器。一个是每0.017秒更新一次逻辑的逻辑定时器:Java LibGDX定时器不';在android上恢复游戏后,无法启动,java,android,timer,libgdx,Java,Android,Timer,Libgdx,我在代码中创建了两个计时器。一个是每0.017秒更新一次逻辑的逻辑定时器: logicTimer = new Timer(); logicTimer.scheduleTask(new Timer.Task() { @Override public void run() { updateLogic(); } }, 0f, timePerProcessing); 另一种是每3秒产生一次障碍物: meteoroi
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);
当我暂停比赛并在比赛结束后继续比赛时,我的逻辑计时器仍然工作,但障碍计时器却不工作。我认为这是因为我在方法中使用了随机对象,我调用了计时器,但我尝试了一个简单的方法:
System.out.println("It is showing");
但它仍然没有恢复
我的暂停和恢复代码:
@Override
public void pause(){
meteoroidTimer.stop();
logicTimer.stop();
}
@Override
public void resume(){
meteoroidTimer.start();
logicTimer.start();
}
你不需要使用timer.stop和star-on-resume,因为当你离开应用程序时,libgdx会停止渲染/更新,所以你的计时器不会被更新。你是说暂停游戏还是暂停活动?这可能是两件完全不同的事情。对不起,我对android有点陌生,但只有当我按下手机右侧的按钮时,游戏才会暂停,并显示其他打开的应用程序。你介意我问一下,你为什么要使用计时器(在渲染线程中使用单独的线程)而不是跟踪增量时间并在渲染线程上触发这些操作?因为我知道渲染方法取决于硬件频率。这就是为什么我要用计时器来获取经过的确切时间。我不知道如何用delta time这样的方式来做。这听起来像是一个在
libgdx
中已知的方法。您确定使用的是最新的libgdx
版本吗?