Python Turtle:绚丽多彩的烟花动画

以下是一个使用 Python 的turtle库实现的烟花动画程序示例:

收起

python

复制

import turtle
import random
import time

# 创建画布
screen = turtle.Screen()
screen.bgcolor("black")
screen.title("Fireworks Animation")

# 烟花颜色列表
colors = ["red", "orange", "yellow", "green", "blue", "purple"]

# 发射烟花函数
def firework(x, y):
    pen = turtle.Turtle()
    pen.hideturtle()
    pen.speed(0)
    pen.penup()
    pen.goto(x, y)
    pen.pendown()
    color = random.choice(colors)
    pen.color(color)
    for i in range(30):
        pen.forward(i * 2)
        pen.right(144)
    explosion(pen.xcor(), pen.ycor(), color)

# 烟花爆炸效果函数
def explosion(x, y, color):
    particles = []
    for i in range(30):
        particle = turtle.Turtle()
        particle.hideturtle()
        particle.speed(0)
        particle.penup()
        particle.goto(x, y)
        particle.pendown()
        particle.color(color)
        angle = random.randint(0, 360)
        distance = random.randint(10, 50)
        particle.setheading(angle)
        particle.forward(distance)
        particles.append(particle)
    for _ in range(10):
        for particle in particles:
            particle.forward(5)

# 绑定鼠标点击事件来触发烟花
screen.onclick(firework)

# 主循环
while True:
    screen.update()
    time.sleep(0.1)

在这个程序中:

初始化部分:

  1. 首先创建了一个turtle屏幕对象screen,将背景颜色设置为黑色,并设置了标题。
  2. 定义了一个包含多种颜色的列表colors,用于烟花的颜色选择。

烟花发射和爆炸函数:

  1. firework函数用于发射一个烟花。当调用该函数时,它会在指定的(x, y)坐标处创建一个turtle对象作为烟花。烟花的颜色是从colors列表中随机选择的,然后通过循环绘制出烟花上升的轨迹(这里是一个简单的多边形)。之后调用explosion函数在烟花的顶部位置产生爆炸效果。
  2. explosion函数用于创建烟花爆炸的效果。它在给定的坐标(x, y)处创建多个turtle对象作为烟花爆炸的粒子,每个粒子有随机的方向和距离,然后通过循环让这些粒子向外扩散,模拟爆炸的视觉效果。

事件绑定和主循环:

  1. firework函数绑定到鼠标点击事件上,这样每次点击鼠标时就会发射一个烟花。
  2. 在主循环中,不断更新屏幕以显示动画效果,并添加了一个小的时间延迟0.1秒,以控制动画的帧率和流畅度

作者:赵闪闪168

物联沃分享整理
物联沃-IOTWORD物联网 » Python Turtle:绚丽多彩的烟花动画

发表回复