python烟花表白过年
时间: 2023-12-31 16:25:02 浏览: 83
很高兴回答你的问题!下面是一个使用Python模拟烟花绽放效果的例子,可以用来表白或庆祝过年:
```python
import pygame
import random
# 初始化pygame
pygame.init()
# 设置窗口大小和标题
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("烟花表白过年")
# 定义烟花粒子类
class Particle(pygame.sprite.Sprite):
def __init__(self, x, y, color):
super().__init__()
self.image = pygame.Surface((2, 2))
self.image.fill(color)
self.rect = self.image.get_rect()
self.rect.center = (x, y)
self.gravity = pygame.Vector2(0, 0.1)
self.velocity = pygame.Vector2(random.uniform(-1, 1), random.uniform(-2, -0.5))
self.lifetime = random.randint(100, 200)
def update(self):
self.velocity += self.gravity
self.rect.move_ip(self.velocity)
self.lifetime -= 1
# 定义烟花类
class Firework(pygame.sprite.Sprite):
def __init__(self, x, y):
super().__init__()
self.particles = pygame.sprite.Group()
self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
for _ in range(100):
particle = Particle(x, y, self.color)
self.particles.add(particle)
def update(self):
self.particles.update()
self.particles = pygame.sprite.Group([particle for particle in self.particles if particle.lifetime > 0])
# 创建烟花粒子和烟花组
fireworks = pygame.sprite.Group()
# 游戏主循环
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 每隔一段时间创建一个新的烟花
if random.random() < 0.02:
firework = Firework(random.randint(100, 700), 600)
fireworks.add(firework)
# 更新烟花
fireworks.update()
# 绘制烟花
screen.fill((0, 0, 0))
fireworks.draw(screen)
# 更新屏幕
pygame.display.flip()
# 退出游戏
pygame.quit()
```
这段代码使用了pygame库来创建一个窗口,并在窗口中模拟烟花绽放效果。每隔一段时间,程序会创建一个新的烟花对象,并在窗口中绘制出来。烟花由许多粒子组成,每个粒子都有自己的位置、速度、重力和生命周期。粒子会根据重力和速度不断更新自己的位置,并逐渐消失,直到生命周期结束。
你可以运行这段代码,观察烟花绽放的效果。你可以根据自己的需要修改窗口大小、烟花的数量和颜色等参数,来实现不同的效果。
阅读全文