用python写一个烟花效果代码,爆炸范围是圆形,颜色多样,有拖尾效果
时间: 2024-10-03 09:04:29 浏览: 34
在Python中,我们可以利用pygame库来模拟烟花的效果。以下是一个简单的例子,展示了如何创建一个圆形爆炸动画,包含不同颜色和随机拖尾效果。请注意,这个示例需要先安装pygame库。
```python
import pygame
import random
# 初始化Pygame
pygame.init()
# 设置窗口大小和背景色
screen = pygame.display.set_mode((640, 480))
background_color = (0, 0, 0)
pygame.display.set_caption("Fireworks")
# 烟花爆炸函数
def firework_explosion(x, y, color):
size = [5, 15] # 爆炸半径范围
explosion_duration = 50 # 持续时间
for i in range(explosion_duration):
radius = int(random.uniform(*size)) # 随机半径
thickness = 1 if i < explosion_duration // 2 else 2 # 随着时间增加,尾巴变粗
trail = [(x, y),] + [(x+dx, y+dy) for dx, dy in zip(range(-radius, radius+1), range(radius+1))]
# 绘制烟花和尾巴
pygame.draw.circle(screen, color, (x, y), radius, thickness)
for pos in trail:
pygame.draw.line(screen, color, (pos[0], pos[1]), (x, y), 1)
# 主循环
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 创建随机位置和颜色的烟花
fireworks = [(random.randint(0, screen.get_width()), random.randint(0, screen.get_height())),]
# 更新每一帧的烟花
for firework in fireworks:
firework_explosion(*firework, (random.choice([(255, 0, 0), (0, 255, 0), (0, 0, 255)])))
# 更新屏幕
screen.fill(background_color)
pygame.display.flip()
pygame.time.delay(50) # 控制每秒多少帧,使得动画更平滑
# 游戏结束
pygame.quit()
```
运行这个代码,你将在窗口上看到不断绽放的彩色烟花,每个烟花从随机位置发射,并留下一条随机颜色的尾巴。
阅读全文