在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()'。 –