在tick()方法中,不能有int startTime = System.nanoTime(),因为它会不断更新它。如何使用记号方法跟踪已用时间?
我需要在tick方法内找到已用时间,以便每2秒钟产生一个新对象。
public void tick() {
long startTime = System.nanoTime();
// wave 1
if (wave == 1) {
float k = System.nanoTime() - startTime;
/* won't work because "startTime" is constantly updating */
if (k >= 2 && k <= 3) {
handler.addObject(new BasicEnemy());
} else if (k >= 4 && k <= 5) {
handler.addObject(new BasicObject());
} else if (k >= 6 && k <= 7) {
handler.addObject(new BasicEnemy());
}
}
// wave 2
if (wave == 2) {
float k = System.nanoTime() - startTime;
/* won't work because "startTime" is constantly updating */
if (k >= 2 && k <= 3) {
handler.addObject(new BasicEnemy());
} else if (k >= 4 && k <= 5) {
handler.addObject(new BasicObject());
} else if (k >= 6 && k <= 7) {
handler.addObject(new BasicEnemy());
}
}
}
}
以上是代码的一小段代码。 我该如何去找到经过时间的滴答方法,并让它重新启动每个if语句的计数?
感谢您的帮助:)
是否使用线程?我在你的代码中看不到任何线程... – px06
@ px06我的主类只有一个线程,我应该有更多的工作来完成这个工作吗? – badProgrammer
“/ *将不起作用,因为”startTime“不断更新* /”是什么让你觉得呢? 'startTime'将始终是方法开始时的'nanoTime()',而不是_current_'nanoTime()'。 –