python烟花简易
时间: 2024-12-31 13:33:20 浏览: 6
### 使用 Python 编写简易烟花效果
为了创建一个简单的烟花效果模拟程序,可以利用 `pygame` 库来处理图形渲染和动画。下面是一个基本的例子:
#### 安装依赖库
首先需要安装 Pygame 库,可以通过 pip 命令完成:
```bash
pip install pygame
```
#### 导入必要的模块并初始化环境设置
```python
import sys
import random
import math
import pygame
from pygame.locals import *
```
#### 创建屏幕对象和其他全局变量定义
```python
# 初始化Pygame
pygame.init()
# 设置窗口大小
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption('Simple Fireworks')
# 颜色定义
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
# 时间控制
clock = pygame.time.Clock()
fps_limit = 30
```
#### 设计粒子类用于表示单个火花的行为模式
```python
class Particle:
def __init__(self, x, y):
self.x = x
self.y = y
self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
angle = random.uniform(0, 2 * math.pi)
speed = random.uniform(1, 7)
self.dx = speed * math.cos(angle)
self.dy = -speed * math.sin(angle) # 向上发射
self.lifespan = random.randint(50, 200)
def update(self):
self.x += self.dx
self.y += self.dy
self.lifespan -= 1
self.dy += 0.1 # 加速度向下拉拽
def draw(self):
if self.lifespan > 0:
pygame.draw.circle(screen, self.color, (int(self.x), int(self.y)), 4)
```
#### 主循环逻辑结构设计
```python
particles = []
while True:
for event in pygame.event.get():
if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
pygame.quit()
sys.exit()
mouse_buttons = pygame.mouse.get_pressed()
if mouse_buttons[0]:
particles.append(Particle(*pygame.mouse.get_pos()))
screen.fill(BLACK)
new_particles = []
for p in particles:
p.update()
p.draw()
if p.lifespan > 0:
new_particles.append(p)
particles = new_particles
pygame.display.flip()
clock.tick(fps_limit)
```
这段代码实现了通过鼠标点击位置生成随机颜色的小球作为烟花爆炸的效果[^1]。
阅读全文