对不起,意大利面条代码!这是我的第一个GUI。一般而言,对编码来说是非常新的。我知道while循环可以在gui之外使用,但显然不适用于此哈哈。所以我想知道如何使用我制作的“ private void runAway()”方法重新启动Java游戏?
public class EnemiesAttackApp extends Application {
@Override
public void start (Stage primaryStage) throws Exception {
primaryStage.setScene(new Scene(createContent()));
primaryStage.setTitle("Enemies Attack!");
primaryStage.show();
}
//System objects
Scanner in = new Scanner(System.in);
Random rand = new Random();
//Game variables
String[] enemies = {"Skeleton", "Zombie", "Warrior", "Assassin"};
int enemyAttackDamage = 25;
int enemyHealth = 0 + rand.nextInt(75);
String enemy = enemies[rand.nextInt(enemies.length)];
// Player variables
int health = 100; etc
private void initGame() {
println("Welcome to Enemies Attack v 0.1");
println("-------------------------------");
if (enemyHealth > 0)
println("\t# " + enemy + " appeared! #\n");
println("\tYOUR HP: " + health);
println("\t" + enemy + "'s HP: " + enemyHealth);
println("\n\tWhat would you like to do?");
println("\t1. Attack enemy");
println("\t2. Drink potion");
println("\t3. Run");
initCommands();
}
`private void runAway() {
println("\t You ran away from the " + enemy + "!");
// how do I restart the gui here? }
答案 0 :(得分:0)
创建一个控制当前“场景”的对象并在每次游戏重新启动时重新设置该对象可能是明智的。无论如何,这是您应该可以使用的修改后的代码:
public class EnemiesAttackApp extends Application {
@Override
public void start (Stage primaryStage) throws Exception {
primaryStage.setScene(new Scene(createContent()));
primaryStage.setTitle("Enemies Attack!");
primaryStage.show();
}
//System objects
Scanner in = new Scanner(System.in);
Random rand = new Random();
//Game variables
String[] enemies = {"Skeleton", "Zombie", "Warrior", "Assassin"};
int enemyAttackDamage = 25;
int enemyHealth = 0;
String enemy = null;
// Player variables
int health = 0;
private void initGame() {
enemyHealth = 0 + rand.nextInt(75);
enemy = enemies[rand.nextInt(enemies.length)];
health = 100;
println("Welcome to Enemies Attack v 0.1");
println("-------------------------------");
if (enemyHealth > 0) {
println("\t# " + enemy + " appeared! #\n");
println("\tYOUR HP: " + health);
println("\t" + enemy + "'s HP: " + enemyHealth);
println("\n\tWhat would you like to do?");
println("\t1. Attack enemy");
println("\t2. Drink potion");
println("\t3. Run");
initCommands();
}
}
private void runAway() {
println("\t You ran away from the " + enemy + "!");
initGame();
}
}
基本上,遵循逻辑的方法是拥有一个重置所有值的方法(在我的示例中为初始化游戏)。