java游戏循环中断图形

java游戏循环中断图形,java,while-loop,game-engine,acm-java-libraries,Java,While Loop,Game Engine,Acm Java Libraries,我对ACM库有意见。我正在尝试创建一个游戏。为了使小程序在acm中运行,需要使用graphicsProgram类的run()方法 我有一个单独的类,它将这个图形程序作为一个全局字段,在图形界面中添加和删除元素。我的问题是,如果我在这个类中有一个while循环,图形程序就会停止正常工作(无法删除元素,无法从外部菜单访问它…) 是否有任何acm专家知道如何将一个while循环的无限多个迭代与一个工作图形程序结合在一起 我有: public class Controller extends Graph

我对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();
                }
           }
    }
公共类控制器扩展GraphicsProgram{
私人战斗=新战斗();
//应用程序的主循环
公开募捐{
battle.startBattle()
}
公开阶级斗争{
私有集项目符号=新HashSet();
私有集平台=新HashSet();
专用控制器;
公共战斗(控制员){…}
公共无效开始标记(){
而(!isGameOver()){
用于(项目符号b:项目符号){
用于(平台p:平台){
如果(b.相交(p)){
控制器。移除(b);
}否则{
b、 move();
}
}
}

我无法将代码从战斗转移到控制器中,因为控制器比给定的代码更复杂。

请添加代码。另请参阅此相关文档。