java实现可视化回合制对战游戏代码示例,包括页面跳转,人物对战
时间: 2023-08-28 12:57:39 浏览: 122
代码 3D Action Game Example 回合制游戏源码
以下是一个简单的Java代码示例,展示了如何实现可视化的回合制对战游戏,包括页面跳转和人物对战。
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class BattleGameGUI extends JFrame {
private JPanel mainPanel;
private JButton startButton;
private JButton attackButton;
private JLabel playerLabel;
private JLabel enemyLabel;
private int playerHP;
private int enemyHP;
public BattleGameGUI() {
super("Battle Game");
playerHP = 100;
enemyHP = 100;
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
showBattleScreen();
}
});
attackButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
attack();
}
});
setContentPane(mainPanel);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
private void showBattleScreen() {
startButton.setVisible(false);
attackButton.setVisible(true);
updateHPLabels();
}
private void attack() {
int playerDamage = 10;
int enemyDamage = 15;
playerHP -= enemyDamage;
enemyHP -= playerDamage;
if (playerHP <= 0 || enemyHP <= 0) {
endGame();
} else {
updateHPLabels();
}
}
private void endGame() {
attackButton.setVisible(false);
if (playerHP <= 0 && enemyHP <= 0) {
playerLabel.setText("It's a tie!");
enemyLabel.setText("It's a tie!");
} else if (playerHP <= 0) {
playerLabel.setText("You lost!");
enemyLabel.setText("You won!");
} else {
playerLabel.setText("You won!");
enemyLabel.setText("You lost!");
}
}
private void updateHPLabels() {
playerLabel.setText("Player HP: " + playerHP);
enemyLabel.setText("Enemy HP: " + enemyHP);
}
public static void main(String[] args) {
BattleGameGUI game = new BattleGameGUI();
game.setVisible(true);
}
}
```
这个代码示例使用了Swing库来创建一个简单的GUI界面。在游戏开始时,点击"Start"按钮将显示战斗界面,玩家可以点击"Attack"按钮来进行攻击。游戏中有玩家和敌人的血量,每次攻击都会减少对方的血量,当某一方的血量归零时,游戏结束,并显示胜利或失败的信息。
请注意,这只是一个简单的示例代码,您可以根据自己的需求进行扩展和修改。
阅读全文