使用Java在IntelliJ IDEA上编写爱心收集游戏

这是一个使用Java在IntelliJ IDEA上编写的具有以下功能的简单游戏示例:

  • 游戏开始: 屏幕上出现一个小男孩,随机位置生成一个爱心。
  • 移动小男孩: 使用键盘的方向键控制小男孩在屏幕上移动。
  • 收集爱心: 当小男孩触碰到爱心,爱心会被收集,并在随机位置生成另一个爱心。
  • 收集12个爱心: 当收集到12个爱心后,随机生成的第13个爱心会变成一个女孩。
  • 游戏结束: 当小男孩触碰到女孩时,屏幕中间会生成一个大爱心,并弹出“Game Over!”的对话框。

代码示例

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

public class LoveCollector extends JFrame implements ActionListener {
    private final int SCREEN_WIDTH = 500;
    private final int SCREEN_HEIGHT = 500;
    private final int BOY_SIZE = 50;
    private final int HEART_SIZE = 30;
    private final int BIG_HEART_SIZE = 100;
    private final int TOTAL_HEARTS = 13;
    private final int HEARTS_TO_WIN = 12;

    private JButton boy;
    private JButton heart;
    private JButton bigHeart;
    private int collectedHearts;
    private Random random;

    public LoveCollector() {
        setTitle('Love Collector');
        setSize(SCREEN_WIDTH, SCREEN_HEIGHT);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);

        Container container = getContentPane();
        container.setLayout(null);

        boy = new JButton(new ImageIcon('boy.png'));
        boy.setBounds(0, 0, BOY_SIZE, BOY_SIZE);
        container.add(boy);

        heart = new JButton(new ImageIcon('heart.png'));
        heart.setBounds(getRandomX(), getRandomY(), HEART_SIZE, HEART_SIZE);
        heart.addActionListener(this);
        container.add(heart);

        bigHeart = new JButton(new ImageIcon('big_heart.png'));
        bigHeart.setBounds(SCREEN_WIDTH / 2 - BIG_HEART_SIZE / 2, SCREEN_HEIGHT / 2 - BIG_HEART_SIZE / 2,
                BIG_HEART_SIZE, BIG_HEART_SIZE);
        bigHeart.setVisible(false);
        container.add(bigHeart);

        collectedHearts = 0;
        random = new Random();

        Timer timer = new Timer(1000, this);
        timer.start();
    }

    private int getRandomX() {
        return random.nextInt(SCREEN_WIDTH - HEART_SIZE);
    }

    private int getRandomY() {
        return random.nextInt(SCREEN_HEIGHT - HEART_SIZE);
    }

    private void generateNewHeart() {
        heart.setBounds(getRandomX(), getRandomY(), HEART_SIZE, HEART_SIZE);
        heart.setVisible(true);
    }

    private void showBigHeart() {
        bigHeart.setVisible(true);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();

        if (source == heart) {
            collectedHearts++;
            if (collectedHearts == HEARTS_TO_WIN) {
                generateNewHeart();
                showBigHeart();
            } else if (collectedHearts > HEARTS_TO_WIN) {
                JOptionPane.showMessageDialog(this, 'Game Over!');
                System.exit(0);
            } else {
                generateNewHeart();
            }
        }
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            LoveCollector loveCollector = new LoveCollector();
            loveCollector.setVisible(true);
        });
    }
}

运行步骤

  1. 准备图像文件:
    • 创建名为 boy.pngheart.pngbig_heart.png 的图像文件。
    • 将这些图像文件放在与 Java 类文件相同的目录下。
  2. 创建项目:
    • 打开 IntelliJ IDEA,并创建一个新的 Java 项目。
  3. 添加代码:
    • 在项目中创建一个新的 Java 类文件,将上述代码复制粘贴到类文件中。
  4. 运行程序:
    • 点击运行按钮或使用快捷键 Shift + F10 来运行程序。

注意事项

  • 确保你已经设置了适当的图像文件,并在运行程序之前进行必要的准备。
  • 你可以使用键盘的方向键来移动小男孩。
  • 当收集到12个爱心后,随机生成的第13个爱心会变成一个女孩。
  • 当小男孩触碰到女孩时,游戏结束。

通过这个简单的小游戏,你可以学习如何使用Java编写图形界面、处理事件、使用计时器以及实现简单的游戏逻辑。你可以尝试修改代码,添加更多功能,创造出更有趣的游戏。

Java爱心收集游戏:用IntelliJ IDEA编写移动小男孩收集爱心,最终触碰女孩游戏结束

原文地址: https://www.cveoy.top/t/topic/W73 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录