Java 动态烟花代码
时间: 2024-12-14 09:27:07 浏览: 5
在Java中实现动态烟花效果,通常会利用动画、图形绘制以及事件处理等技术。以下是一个简单的示例,使用Java Swing库来创建基本的动态烟花效果:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.geom.Point2D;
import java.util.Random;
public class Fireworks extends JFrame {
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
private static final int NUM_BURST = 50;
private static final int BURST_SIZE = 10;
private final Random random = new Random();
public Fireworks() {
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
for (int i = 0; i < NUM_BURST; i++) {
fireworksBurst();
try {
Thread.sleep(500); // 每次间隔500毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private void fireworksBurst() {
Graphics g = getGraphics(); // 获取画布
g.setColor(Color.RED); // 烟花颜色
// 创建随机位置点
Point2D.Float[] burstPoints = new Point2D.Float[NUM_BURST];
for (int j = 0; j < BURST_SIZE; j++) {
float x = random.nextInt(WIDTH);
float y = random.nextInt(HEIGHT);
burstPoints[j] = new Point2D.Float(x, y);
}
// 从内向外绘制火花
for (Point2D.Float point : burstPoints) {
g.fillOval((int)point.getX(), (int)point.getY(), 2, 2); // 火花大小
}
g.dispose(); // 释放资源
}
public static void main(String[] args) {
new Fireworks();
}
}
```
这个程序会在一个窗口中创建一系列随机位置的小圆点(模拟火花),每个小圆点会立即消失,看起来像烟花爆炸的效果。这只是一个基础示例,实际的烟花效果可能需要更复杂的算法和动画技巧。
阅读全文