用Java写一个小游戏,游戏窗口为500x500像素,背景为黑色。 气球的随机半径在20到40像素之间。您可以自由选择创建气球的方法,以几何方式创建它们。 有50%的几率气球是红色的,有50%的几率气球是绿色的。 气球的中心在半径和窗口宽度减去半径之间的随机x位置。 气球从负半径的y位置开始(即远离屏幕顶部)。
时间: 2024-02-10 16:10:42 浏览: 104
一个用java写的小游戏
5星 · 资源好评率100%
好的,我可以给你提供一个简单的实现气球爆破的小游戏的Java代码,具体如下:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class BalloonGame extends JPanel implements ActionListener, MouseListener {
private static final int WIDTH = 500;
private static final int HEIGHT = 500;
private static final int MAX_BALLOONS = 20;
private Timer timer;
private ArrayList<Balloon> balloons;
private int numBalloons;
public BalloonGame() {
setPreferredSize(new Dimension(WIDTH, HEIGHT));
setBackground(Color.BLACK);
balloons = new ArrayList<>();
numBalloons = 0;
timer = new Timer(50, this);
timer.start();
addMouseListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
for (int i = 0; i < numBalloons; i++) {
balloons.get(i).draw(g);
}
}
public void actionPerformed(ActionEvent e) {
if (numBalloons < MAX_BALLOONS) {
Balloon balloon = new Balloon();
balloons.add(balloon);
numBalloons++;
}
for (int i = 0; i < numBalloons; i++) {
balloons.get(i).move();
}
repaint();
}
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
for (int i = 0; i < numBalloons; i++) {
if (balloons.get(i).contains(x, y)) {
balloons.get(i).pop();
return;
}
}
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
private class Balloon {
private int x;
private int y;
private int radius;
private boolean popped;
private Color color;
public Balloon() {
radius = (int) (Math.random() * 21 + 20);
x = (int) (Math.random() * (WIDTH - 2 * radius)) + radius;
y = -radius;
popped = false;
if (Math.random() < 0.5) {
color = Color.RED;
} else {
color = Color.GREEN;
}
}
public void draw(Graphics g) {
if (!popped) {
g.setColor(color);
g.fillOval(x - radius, y - radius, 2 * radius, 2 * radius);
}
}
public void move() {
if (!popped) {
y += 5;
if (y > HEIGHT + radius) {
balloons.remove(this);
numBalloons--;
}
}
}
public boolean contains(int x, int y) {
return !popped && Math.sqrt((this.x - x) * (this.x - x) + (this.y - y) * (this.y - y)) < radius;
}
public void pop() {
popped = true;
}
}
public static void main(String[] args) {
JFrame frame = new JFrame("Balloon Game");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new BalloonGame());
frame.pack();
frame.setVisible(true);
}
}
```
这个代码实现了一个气球爆破小游戏。在 `BalloonGame` 类中,定义了一个 `Balloon` 类,用于表示气球的属性和行为。在 `BalloonGame` 类的构造方法中初始化了气球列表、定时器和鼠标事件监听器,并且在 `paintComponent` 方法中绘制气球。在 `actionPerformed` 方法中,每次判断气球数量是否达到最大值,如果没有就创建一个新的气球。在 `mouseClicked` 方法中判断鼠标点击的位置是否在气球范围内,并弹掉气球。最后,在 `main` 方法中创建一个 `JFrame` 对象,并将 `BalloonGame` 对象作为其内容面板。
这个小游戏的规则是,随着时间的推移,气球从上往下落,玩家需要点击气球来弹掉它们。气球的半径在20到40像素之间随机生成,有50%的几率是红色的,有50%的几率是绿色的。当气球落到屏幕下方时,它们会被移除,玩家需要在气球落下之前弹掉尽可能多的气球。
阅读全文