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();
}
}
}
コントローラーは指定されたコードよりも複雑であるため、コードをバトルからコントローラーに移動できません。