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