Java爱心收集游戏:用代码编织浪漫
Java爱心收集游戏:用代码编织浪漫
想用代码创造一份浪漫吗?这款Java爱心收集游戏将带你体验编程的乐趣!
游戏玩法
- 屏幕上显示一个小男孩,你可以用键盘方向键控制他移动。2. 屏幕会随机生成爱心,小男孩触碰到爱心即可收集。3. 收集到12颗爱心后,第13颗爱心会变成一个女孩。4. 小男孩触碰到女孩,屏幕中央将出现一颗大爱心,并弹出'爱艺'对话框,游戏成功!
Java代码实现
以下是游戏的完整Java代码:javaimport javax.swing.;import java.awt.;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Random;
public class LoveCollector extends JFrame implements ActionListener, KeyListener { 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() { random = new Random();
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('D:/ai.jpg')); boy.setBounds(SCREEN_WIDTH / 2 - BOY_SIZE / 2, SCREEN_HEIGHT / 2 - BOY_SIZE / 2, BOY_SIZE, BOY_SIZE); container.add(boy);
heart = new JButton(new ImageIcon('D:/ai.jpg')); heart.setBounds(getRandomX(), getRandomY(), HEART_SIZE, HEART_SIZE); heart.addActionListener(this); container.add(heart);
bigHeart = new JButton(new ImageIcon('D:/ai.jpg')); 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;
Timer timer = new Timer(1000, this); timer.start();
// 注册键盘事件监听器 addKeyListener(this); setFocusable(true); }
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); }
private void showDialog() { JOptionPane.showMessageDialog(this, '爱艺'); }
@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(); } } }
@Override public void keyPressed(KeyEvent e) { int keyCode = e.getKeyCode(); int x = boy.getX(); int y = boy.getY(); int step = 10;
if (keyCode == KeyEvent.VK_UP) { boy.setLocation(x, y - step); } else if (keyCode == KeyEvent.VK_DOWN) { boy.setLocation(x, y + step); } else if (keyCode == KeyEvent.VK_LEFT) { boy.setLocation(x - step, y); } else if (keyCode == KeyEvent.VK_RIGHT) { boy.setLocation(x + step, y); }
if (boy.getBounds().intersects(heart.getBounds())) { collectedHearts++; if (collectedHearts == TOTAL_HEARTS) { generateNewHeart(); bigHeart.setIcon(new ImageIcon('D:/girl.jpg')); bigHeart.setBounds(SCREEN_WIDTH / 2 - BIG_HEART_SIZE / 2, SCREEN_HEIGHT / 2 - BIG_HEART_SIZE / 2, BIG_HEART_SIZE, BIG_HEART_SIZE); bigHeart.setVisible(true); showDialog(); } else { generateNewHeart(); } } }
@Override public void keyTyped(KeyEvent e) { // 不需要实现 }
@Override public void keyReleased(KeyEvent e) { // 不需要实现 }
public static void main(String[] args) { SwingUtilities.invokeLater(() -> { LoveCollector loveCollector = new LoveCollector(); loveCollector.setVisible(true); }); }}
代码解读
- 游戏界面: 使用
JFrame创建游戏窗口,JButton分别代表小男孩、爱心和大爱心。2. 游戏逻辑: -keyPressed()方法处理键盘输入,控制小男孩移动。 -actionPerformed()方法处理游戏事件,例如爱心收集、游戏结束等。 -generateNewHeart()方法随机生成新的爱心。3. 游戏胜利: 当小男孩收集到12颗爱心后,第13颗爱心会变成女孩,触碰女孩后游戏胜利。
总结
这款Java爱心收集游戏简单有趣,非常适合初学者学习Java游戏开发。你可以根据自己的创意修改代码,例如更换图片、添加音效等,让游戏更加精彩!
原文地址: https://www.cveoy.top/t/topic/1D2 著作权归作者所有。请勿转载和采集!