欢迎访问宙启技术站
智能推送

使用Python生成红色的烟花动画

发布时间:2023-12-27 22:47:55

下面是一个使用Python生成红色烟花动画的例子:

import turtle
import random

# 设置画布大小
turtle.setup(800, 600)
screen = turtle.Screen()
screen.title("Fireworks in Python")
screen.bgcolor("black")

# 定义烟花粒子类
class Particle(turtle.Turtle):
    def __init__(self, x, y):
        super().__init__()
        self.shape("circle")
        self.shapesize(0.1, 0.1)
        self.penup()
        self.color("red")
        self.speed(0)
        self.goto(x, y)
        self.dy = random.randint(3, 9)
        self.gravity = 0.1
        
    def update(self):
        self.dy -= self.gravity
        self.sety(self.ycor() + self.dy)
        
        if self.ycor() < -300:  # 当烟花下落到一定位置时,重置烟花位置
            x = random.randint(-400, 400)
            y = random.randint(300, 400)
            self.goto(x, y)
            self.dy = random.randint(3, 9)
            self.gravity = 0.1

# 创建一个空列表用于存储烟花粒子对象
particles = []

# 创建烟花粒子对象并添加到列表中
for _ in range(50):
    x = random.randint(-400, 400)
    y = random.randint(300, 400)
    particle = Particle(x, y)
    particles.append(particle)
    
# 动画循环
while True:
    for particle in particles:
        particle.update()

turtle.done()

这个例子使用了Python的turtle模块来实现烟花动画效果。首先我们创建了一个窗口,并将其背景色设置为黑色。

然后定义了一个烟花粒子类,该类继承自turtle.Turtle类。在初始化方法中设置了粒子的形状、大小、颜色和初始速度。同时为粒子添加了一个下落的速度dy和重力加速度gravity。

在update方法中更新了粒子的位置,根据粒子的速度和重力,不断地将粒子向下移动。当粒子下落到一定位置时,重置其位置和速度,以实现烟花的爆炸效果。

接下来,我们创建了一个空列表用于存储烟花粒子对象。然后通过循环创建了一定数量的粒子,并将其添加到列表中。

最后,使用一个无限循环来更新粒子的位置,并使用turtle.done()来保持窗口的显示。

运行以上代码,你将看到屏幕上出现了许多红色的烟花粒子,它们会从随机位置开始下落,然后在一定位置重置并重新开始下落,形成了一个连续的烟花动画效果。