人狗大战JAVA代码:真是太厉害了!

人狗大战JAVA代码:真是太厉害了!

作者:编辑 发表时间:2025-04-07 11:02

人狗大战JAVA代码:真是太厉害了!

# 人狗大战的Java实现
在游戏开发中,创意和趣味性是吸引玩家的关键。本文将介绍一个简单的"人狗大战"游戏的Java实现,让我们一起探索这个小游戏的基本结构。
游戏目标
在这个游戏中,玩家控制一个人,目标是躲避不断出现的狗并尽可能生存更长时间。游戏会随机产生狗,并通过简单的逻辑判定玩家是否被狗追上。
基本代码实现
我们将使用Java的Swing库来实现这个简单的GUI游戏。以下是一个基础示例:
java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Random;
public class HumanDogBattle extends JPanel implements ActionListener {
private int humanX = 250, humanY = 250;
private ArrayList dogs = new ArrayList<>();
private Random random = new Random();
private Timer timer;
public HumanDogBattle() {
setPreferredSize(new Dimension(500, 500));
setBackground(Color.LIGHT_GRAY);
timer = new Timer(1000, this);
timer.start();
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
moveHuman(e.getKeyCode());
}
});
setFocusable(true);
}
private void moveHuman(int keyCode) {
switch (keyCode) {
case KeyEvent.VK_UP -> humanY -= 10;
case KeyEvent.VK_DOWN -> humanY += 10;
case KeyEvent.VK_LEFT -> humanX -= 10;
case KeyEvent.VK_RIGHT -> humanX += 10;
}
repaint();
}
@Override
public void actionPerformed(ActionEvent e) {
spawnDog();
checkCollision();
repaint();
}
private void spawnDog() {
if (random.nextInt(5) == 0) { // 每5次随机产生1只狗
dogs.add(new Point(random.nextInt(500), 0));
}
for (Point dog : dogs) {
dog.y += 5; // 狗向下移动
}
}
private void checkCollision() {
for (Point dog : dogs) {
if (dog.distance(humanX, humanY) < 20) { // 碰撞检测
JOptionPane.showMessageDialog(this, "Game Over!");
System.exit(0);
}
}
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillRect(humanX, humanY, 20, 20); // 画人
g.setColor(Color.RED);
for (Point dog : dogs) {
g.fillRect(dog.x, dog.y, 20, 20); // 画狗
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("人狗大战");
HumanDogBattle game = new HumanDogBattle();
frame.add(game);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

代码解析
1. **窗口设置**:使用`JFrame`和`JPanel`创建游戏主界面。
2. **用户输入**:通过`KeyListener`监听方向键,根据按键改变“人”的位置。
3. **狗的生成与移动**:每秒随机生成狗,并使它们向下移动。
4. **碰撞检测**:判断“人”与狗之间的距离,如果小于20,则触发游戏结束。
总结
这只是一个基础版本的“人狗大战”。我们可以继续扩展功能,比如增加得分系统、不同速度的狗、游戏暂停等。这种简单的游戏不仅有趣,还能帮助你掌握Java编程和图形界面的基本概念。
相关文章
更多