Java 大鱼吃小鱼游戏代码实现
以下是一个简单的 Java 程序,实现了一个基本的大鱼吃小鱼游戏:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FishGame extends JFrame {
private FishCanvas canvas;
public FishGame() {
canvas = new FishCanvas();
add(canvas);
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new FishGame();
}
});
}
}
class FishCanvas extends JPanel implements KeyListener {
private int fishX, fishY;
private int smallFishX, smallFishY;
private boolean isEaten;
public FishCanvas() {
fishX = 200;
fishY = 200;
smallFishX = 100;
smallFishY = 100;
isEaten = false;
setFocusable(true);
addKeyListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillOval(fishX, fishY, 50, 50);
if (!isEaten) {
g.setColor(Color.RED);
g.fillOval(smallFishX, smallFishY, 30, 30);
} else {
g.drawString('You win!', getWidth() / 2 - 30, getHeight() / 2);
}
}
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch (keyCode) {
case KeyEvent.VK_UP:
fishY -= 10;
break;
case KeyEvent.VK_DOWN:
fishY += 10;
break;
case KeyEvent.VK_LEFT:
fishX -= 10;
break;
case KeyEvent.VK_RIGHT:
fishX += 10;
break;
}
if (fishX >= smallFishX && fishX <= smallFishX + 30 && fishY >= smallFishY && fishY <= smallFishY + 30) {
isEaten = true;
}
repaint();
}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
}
这个程序创建了一个窗口,窗口内有一个画布,画布上有一个大鱼和一个小鱼。通过按键操作,可以控制大鱼的移动。当大鱼碰到小鱼时,游戏结束,显示'You win!'。
原文地址: https://www.cveoy.top/t/topic/pj7t 著作权归作者所有。请勿转载和采集!