私は現在、somekindテキストベースの 'RPG'ゲームに取り組んでいます。私は2つのクラスを作った。最初はある町から別の町への道をシミュレートすることになっているので、プレイヤーが敵に遭遇する可能性がある。ファイティング・ロジックは別のクラスに置かれ、プレイヤーが死んだときに前回のセーブからゲームをロードするか、新しいキャラクターを作成するメソッドが呼び出され、完璧に機能しますが、ループを破る代わりにプレイヤーが死亡した場合でも、 LeaveTownクラスは次のようになります。あなたが見ることができるように別のクラスからのブレイクループ
public class WorldMap {
boolean running=true;
public void leaveTown(Character character){
EnemyFactory factory = new EnemyFactory();
PerformAtack atack = new PerformAtack();
StringBuilder sb = new StringBuilder();
Random random = new Random();
int progress = 0;
while(running && progress!=100){
try {
System.out.print(sb.append("#"));
System.out.println(progress+"%");
if (random.nextDouble() * 10 < 2) {
atack.performFight(character,factory.generateRandomEnemy());
}
Thread.sleep(500);
}catch(Exception ex){}
progress = progress+5;
}
}
}
実行されている変数がfalseや道路に設定されている場合破ることになっているループが終了している間、私が使用しています。文字は、私はメソッドを呼び出すbattleLost
死亡した場合:
private void battleLost(Character character){
WorldMap map = new WorldMap();
System.out.println("You are dead.\nWould you like to try AGAIN or LOAD your last save");
System.out.println("Please type AGAIN or LOAD");
while(true) {
String choice = sc.nextLine().toUpperCase();
if (choice.equals("AGAIN")) {
map.running = false;
System.out.println("Create new character?");
break;
} else if (choice.equals("LOAD")) {
map.running = false;
save.readFromFile();
break;
} else
System.out.println("Try again.");
}
}
この方法設定をfalseにクラス世界地図内の変数を実行しているが、while
ループではなく、破壊の継続しました。私が気づいている問題は、おそらくmap.running = false;
を間違った方法で使用することに関連していることに気付いています。 誰かがこの問題をどのように解決すべきか説明できたらうれしいです。
ありがとうございました。とても有難い。 – BednarQ