用Java编写一个捕鱼达人小游戏
时间: 2023-09-09 07:06:39 浏览: 96
好的,我可以帮你编写一个简单的捕鱼人小游戏。下面是一个示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FishingGame extends JFrame {
private JLabel scoreLabel;
private int score;
public FishingGame() {
setTitle("捕鱼达人");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
scoreLabel = new JLabel("得分: 0");
add(scoreLabel, BorderLayout.NORTH);
FishingPanel fishingPanel = new FishingPanel();
add(fishingPanel, BorderLayout.CENTER);
fishingPanel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int fishSize = fishingPanel.getCaughtFishSize(e.getX(), e.getY());
if (fishSize > 0) {
score += fishSize;
scoreLabel.setText("得分: " + score);
}
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
FishingGame game = new FishingGame();
game.setVisible(true);
});
}
}
class FishingPanel extends JPanel {
private Image backgroundImage;
private Image fishImage;
private int fishX;
private int fishY;
private int fishSize;
public FishingPanel() {
setPreferredSize(new Dimension(800, 600));
setLayout(null);
backgroundImage = new ImageIcon("background.jpg").getImage();
fishImage = new ImageIcon("fish.png").getImage();
fishSize = 50; // 初始鱼的大小
fishX = (int) (Math.random() * (getWidth() - fishSize));
fishY = (int) (Math.random() * (getHeight() - fishSize));
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
fishX = (int) (Math.random() * (getWidth() - fishSize));
fishY = (int) (Math.random() * (getHeight() - fishSize));
repaint();
}
});
timer.start();
}
public int getCaughtFishSize(int x, int y) {
if (x >= fishX && x <= fishX + fishSize && y >= fishY && y <= fishY + fishSize) {
return fishSize;
}
return 0;
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this);
g.drawImage(fishImage, fishX, fishY, fishSize, fishSize, this);
}
}
```
这个示例代码使用了Java的Swing库来创建一个简单的捕鱼达人小游戏。在游戏中,你可以点击鼠标来捕捉鱼,每次捕捉到鱼都会增加得分。游戏界面分为顶部得分显示和中间的游戏区域。鱼的位置会定时随机改变。
注意:示例代码中使用了`background.jpg`作为背景图像和`fish.png`作为鱼的图像,你需要将这两个图像文件放在与Java文件相同的目录下,或者根据自己的需求修改图像文件路径。
希望这个示例能帮助到你,如果有任何问题,请随时提问!