ACM Java Game Loop разорвать графику
У меня проблема с библиотекой ACM. Я пытаюсь создать игру. Для запуска апплета в acm необходимо использовать метод run() класса graphicsProgram.
У меня есть отдельный класс, который имеет эту графическую программу в качестве глобального поля, добавляя и удаляя элементы из графического интерфейса. Моя проблема в том, что если у меня есть цикл while внутри этого класса, графическая программа перестает работать должным образом (не может удалить элементы, не может получить к нему доступ из внешнего меню...).
Есть ли эксперт по acm, который знает, как иметь бесконечно много итераций цикла while вместе с работающей graphicsProgram?
Я имею:
public class Controller extends GraphicsProgram{
private Battle battle = new Battle();
// Main Loop for the application
public void run() {
battle.startBattle()
}
public class Battle {
private Set<Bullet> bullets = new HashSet<>();
private Set<Platform> platform= new HashSet<>();
private Controller controller;
public Battle(Controller controller) {...}
public void startBattle() {
while (!isGameOver()) {
for (Bullet b: bullets) {
for (Platform p: platforms) {
if (b.intersects(p)) {
controller.remove(b);
} else {
b.move();
}
}
}
Я не могу переместить код из Battle в Controller, потому что Controller более сложный, чем приведенный код.