1

ACM ライブラリに問題があります。私はゲームを作成しようとしています。アプレットを acm で実行するには、graphicsProgram クラスの run() メソッドを使用する必要があります。

このグラフィックプログラムをグローバルフィールドとして持つ別のクラスがあり、グラフィカルインターフェイスから要素を追加および削除します。私の問題は、このクラス内に while ループがあると、グラフィックス プログラムが正しく動作しなくなることです (要素を削除できず、外部メニューからアクセスできません...)。

作業中のグラフィックス プログラムと一緒に while ループを無限に繰り返す方法を知っている acm の専門家はいますか?

私は持っている:

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();
                }
           }
    }

コントローラーは指定されたコードよりも複雑であるため、コードをバトルからコントローラーに移動できません。

4

0 に答える 0