Вы должны перехватить InterruptedException, которое вызовет Thread.sleep()
. hunger - hungerDecreaser
также следует изменить на hunger -= hungerDecreaser
.
Ниже приведен пример того, как вы можете использовать параллелизм.
Main. java file:
public class Main {
public static void main(String[] args) {
//create hunger handler
Runnable hunger = new Hunger();
//create hunger thread
Thread thread = new Thread(hunger);
//start thread
thread.start();
//rest of game
System.out.println("This code will run at the same time as the hunger thread.");
}
}
Голод. java файл:
public class Hunger implements Runnable{
int hunger;
int hungerDecreaser;
Hunger() {
hunger = 100;
hungerDecreaser = 5;
}
@Override
public void run() {
while (true) {
try {
Thread.sleep(15000); // throws InterruptedException
} catch (InterruptedException e) { // Exception must be caught or else code will not compile
Thread.currentThread().interrupt();
}
hunger -= hungerDecreaser;
System.out.println("The hunger has decreased to: " + hunger);
}
}
}