Dans une méthode tick(), vous ne pouvez pas avoir un int startTime = System.nanoTime() car il sera constamment mis à jour.Comment suivre le temps écoulé dans une méthode de tick?
Je dois trouver le temps écoulé dans la méthode de graduation, de sorte que toutes les 2 secondes un nouvel objet soit généré.
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());
}
}
}
}
Ce qui précède est un petit extrait du code. Comment est-ce que je pourrais trouver le temps écoulé dans la méthode de tick et le faire redémarrer son compte pour chaque instruction if?
Merci pour l'aide :)
Vous utilisez des fils? Je ne vois aucun fil dans votre code ... – px06
@ px06 J'ai seulement un fil dans ma classe principale, suis-je censé en avoir plus pour que ça marche? – badProgrammer
"/ * ne fonctionnera pas car" startTime "est constamment mis à jour * /" Qu'est-ce qui vous fait penser cela? 'startTime' sera toujours le' nanoTime() 'au début de la méthode, pas le _current_' nanoTime() '. –