元旦烟花Java代码
时间: 2024-12-12 16:10:15 浏览: 20
在Java中编写元旦烟花效果的代码通常涉及到动画、图形绘制以及时间循环。这里给出一个简单的示例,展示如何创建一个基本的“烟花”效果:
```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 Graphics2D g2d;
private Random random;
public Fireworks() {
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("新年烟花");
random = new Random();
}
@Override
public void paint(Graphics g) {
super.paint(g);
g2d = (Graphics2D) g;
g2d.clearRect(0, 0, getWidth(), getHeight());
// 创建烟花发射点和速度随机数组
Point[] points = new Point[50];
int[] speeds = new int[points.length];
for (int i = 0; i < points.length; i++) {
points[i] = new Point(random.nextInt(WIDTH), random.nextInt(HEIGHT));
speeds[i] = random.nextInt(10) + 10;
}
long currentTime = System.currentTimeMillis();
while (currentTime - lastUpdate >= 50) { // 每隔50毫秒更新一次
lastUpdate = currentTime;
// 遍历每个烟花点,移动并画出它们
for (int i = 0; i < points.length; i++) {
points[i].x += speeds[i];
if (points[i].x > getWidth()) { // 如果超过屏幕右侧,清除并从左侧开始
points[i].x = 0;
}
g2d.setColor(new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
g2d.fillOval(points[i].x - 4, points[i].y - 4, 8, 8); // 画一个小圆作为烟花
}
}
}
private long lastUpdate = System.currentTimeMillis(); // 记录上次更新的时间
public static void main(String[] args) {
EventQueue.invokeLater(() -> {
new Fireworks().setVisible(true);
});
}
}
```
这个程序会在窗口中显示一系列随机位置和颜色的烟花效果,看起来像是一场虚拟的新年烟花表演。注意这只是一个基础版,实际的烟花效果可能会更复杂,包括轨迹变化、群组动态等。
阅读全文