tick() 메서드에서는 int updateTime = System.nanoTime()을 계속 업데이트하므로 을 사용할 수 없습니다.틱 방식으로 경과 시간을 추적하는 방법은 무엇입니까?
내에서 경과 시간을 찾아야 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()'이 될 것이고, 현재의'nanoTime()'은 아닙니다. –