1

我对 ACM 库有疑问。我正在尝试创建一个游戏。为了让小程序在 acm 中运行,您需要使用 graphicsProgram 类的 run() 方法。

我有一个单独的类,它把这个图形程序作为一个全局字段,在图形界面中添加和删除元素。我的问题是,如果我在这个类中有一个 while 循环,图形程序将停止正常工作(无法删除元素,无法从外部菜单访问它......)。

是否有任何 acm 专家知道如何将 while 循环与工作图形程序一起进行无限多次迭代?

我有:

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 比给出的代码更复杂。

4

0 回答 0