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 более сложный, чем приведенный код.

0 ответов

Другие вопросы по тегам