我的ACM库存在问题。我正在尝试创建一个游戏。为了让applet在acm中运行,你需要使用graphicsProgram类的run()方法。
我有一个单独的类,它将此图形程序作为全局字段,从图形界面添加和删除元素。我的问题是,如果我在这个类中有一个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比给定的代码更复杂。