-3

これが他の人にとって役に立たない非常に閉じた質問である場合は申し訳ありませんが、私はこのバグに困惑しており、何週間も解決できていません!

私はウェーブ ベースのサバイバル ゲームに取り組んでおり、現在、スポーン メカニズムに取り組んでいます。私が書いたコードは、1 つのウェーブでは完全に機能しますが、どういうわけかそれ以上のウェーブでは再起動しません。私は以下のコードを書きました:

public void run() {
    while (ingame) {
        if (enemyList.isEmpty()) {
            stopSpawn = false;
            try {
                Thread.sleep(500);
                spawnNewEnemy();
            } catch (InterruptedException ex) {
                System.out.println("Interrupted");
            }
        } else {
            if (!enemyList.isEmpty() && !stopSpawn) {
                // getEnemyAmount returns the amount of enemies that should be spawned this wave
                for (int enemiesSpawned = 0; enemiesSpawned < getEnemyAmount(); enemiesSpawned++) {
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException ex) {
                    }
                    System.out.println(currentWave);
                    spawnNewEnemy();
                }
                stopSpawn = true;
            }
        }
    }
}

これが spawnNewEnemy メソッドです

 public void spawnNewEnemy() {
    Random spawn = new Random();
    int spawnX = spawn.nextInt(500);
    int spawnXTest = b.bX - spawnX;
    if (spawnXTest < 20) {
        spawnX = spawnX + 20;
    } else {
    }
    int spawnY = spawn.nextInt(500);
    int spawnYTest = b.bX - spawnY;
    if (spawnYTest < 20) {
        spawnY = spawnY + 20;
    } else {
    }
    spawnY = spawnY + 20;
    spawnX = spawnX + 20;
    enemyList.add(new Enemy(spawnX, spawnY));
}
4

2 に答える 2

1

stopSpawnループに関するあなたの問題は価値があると思います。

最初のウェーブの後に設定trueし、次のウェーブを開始する前に「false」に設定しない可能性があります。

于 2013-05-03T08:23:49.807 に答える