Python结合turtle简单开发一个烟花小工具

Written by

in

文章目录
  • 为了方便初学者体验。分享源代码。手动来运行py python yanhua.py
  • import turtle import random import math # 设置屏幕 screen = turtle.Screen() screen.bgcolor(“black”) screen.title(“Python 烟花效果”) screen.tracer(0, 0) # 关闭自动刷新,提高性能 # 烟花粒子类 class FireworkParticle: def __init__(self, x, y, color): self.t = turtle.Turtle() self.t.shape(“circle”) self.t.shapesize(0.1, 0.1) # 小圆点 self.t.color(color) self.t.penup() self.t.goto(x, y) self.t.pendown() # 随机方向和速度 angle = random.uniform(0, 2 * math.pi) speed = random.uniform(2, 6) self.vx = math.cos(angle) * speed self.vy = math.sin(angle) * speed self.life = random.randint(20, 40) # 存活帧数 def move(self): self.t.setx(self.t.xcor() + self.vx) self.t.sety(self.t.ycor() + self.vy) self.vy -= 0.1 # 重力 self.life -= 1 return self.life > 0 def hide(self): self.t.hideturtle() # 存储所有粒子 particles = [] # 创建烟花函数 def create_firework(x, y): colors = [“red”, “orange”, “yellow”, “green”, “blue”, “purple”, “white”, “pink”] for _ in range(30): # 每个烟花30个粒子 color = random.choice(colors) particles.append(FireworkParticle(x, y, color)) # 随机在屏幕中发射烟花 def launch_random_firework(): x = random.randint(-300, 300) y = random.randint(-100, 200) create_firework(x, y) # 主循环 frame = 0 while True: frame += 1 if frame % 60 == 0: # 每60帧(约1秒)发射一个烟花 launch_random_firework() # 更新粒子 for p in particles[:]: if not p.move(): p.hide() particles.remove(p) screen.update() # 手动刷新画面 turtle.delay(10) # 控制速度 # 注意:正常退出会被无限循环阻塞,可按 Ctrl+C 强制退出
  • 确保你安装了 Python(3.6+ 推荐)。 将上面代码保存为 yanhua.py。运行后 会弹出一个黑色窗口,自动播放烟花动画。 关闭窗口或按Ctrl+C(在终端中)退出程序。
  • 每秒随机位置发射一个彩色烟花。 每个烟花由 30 个彩色粒子组成,呈放射状散开并受“重力”影响下落。 使用了 turtle.tracer(0,0) + 手动 update() 提高性能,避免闪烁。
  • 添加音效(需 playsound 或 pygame)。 支持鼠标点击发射烟花。 增加爆炸声、多层烟花、渐变色等效果。 改用 pygame 或 tkinter 实现更流畅动画(适合复杂项目)。 到此这篇关于Python结合turtle简单开发一个烟花小工具的文章就介绍到这了,更多相关Python烟花内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 使用Python打造跨年倒计时时钟并实现烟花特效与整点报时 使用Python生成新春烟花效果的方法 python绘制春节烟花的示例代码 Python tkinter实现春节烟花效果demo 基于Python记录一场2023的烟花 python实现跨年烟花动态效果 Python实现绘制圣诞树和烟花的示例代码
  • 目录
    • 效果体验
    • 源代码
    • 如何运行
    • 效果说明
    • 可扩展建议

    本系列博文将通过Python代码示例和详细步骤讲解,让学习过程更加生动有趣。Python语言简洁高效,兼具灵活性与实用性,欢迎持续关注。

    下面是一个使用 Python + turtle 模块 实现的简单 烟花效果展示小工具。它使用了 turtle 图形库,无需安装额外依赖(Python 标准库自带),适合在本地直接运行。我们只需要安装好python环境。然后就可以运行。

    为了方便初学者体验。分享源代码。手动来运行py

    python yanhua.py

    import turtle
    import random
    import math
    
    # 设置屏幕
    screen = turtle.Screen()
    screen.bgcolor("black")
    screen.title("Python 烟花效果")
    screen.tracer(0, 0)  # 关闭自动刷新,提高性能
    
    # 烟花粒子类
    class FireworkParticle:
        def __init__(self, x, y, color):
            self.t = turtle.Turtle()
            self.t.shape("circle")
            self.t.shapesize(0.1, 0.1)  # 小圆点
            self.t.color(color)
            self.t.penup()
            self.t.goto(x, y)
            self.t.pendown()
            
            # 随机方向和速度
            angle = random.uniform(0, 2 * math.pi)
            speed = random.uniform(2, 6)
            self.vx = math.cos(angle) * speed
            self.vy = math.sin(angle) * speed
            self.life = random.randint(20, 40)  # 存活帧数
    
        def move(self):
            self.t.setx(self.t.xcor() + self.vx)
            self.t.sety(self.t.ycor() + self.vy)
            self.vy -= 0.1  # 重力
            self.life -= 1
            return self.life > 0
    
        def hide(self):
            self.t.hideturtle()
    
    # 存储所有粒子
    particles = []
    
    # 创建烟花函数
    def create_firework(x, y):
        colors = ["red", "orange", "yellow", "green", "blue", "purple", "white", "pink"]
        for _ in range(30):  # 每个烟花30个粒子
            color = random.choice(colors)
            particles.append(FireworkParticle(x, y, color))
    
    # 随机在屏幕中发射烟花
    def launch_random_firework():
        x = random.randint(-300, 300)
        y = random.randint(-100, 200)
        create_firework(x, y)
    
    # 主循环
    frame = 0
    while True:
        frame += 1
        if frame % 60 == 0:  # 每60帧(约1秒)发射一个烟花
            launch_random_firework()
    
        # 更新粒子
        for p in particles[:]:
            if not p.move():
                p.hide()
                particles.remove(p)
    
        screen.update()  # 手动刷新画面
        turtle.delay(10)  # 控制速度
    
    # 注意:正常退出会被无限循环阻塞,可按 Ctrl+C 强制退出

    确保你安装了 Python(3.6+ 推荐)。

    将上面代码保存为 yanhua.py。运行后

    会弹出一个黑色窗口,自动播放烟花动画。

    关闭窗口或按Ctrl+C(在终端中)退出程序。

    每秒随机位置发射一个彩色烟花。

    每个烟花由 30 个彩色粒子组成,呈放射状散开并受“重力”影响下落。

    使用了 turtle.tracer(0,0) + 手动 update() 提高性能,避免闪烁。

    添加音效(需 playsoundpygame)。

    支持鼠标点击发射烟花。

    增加爆炸声、多层烟花、渐变色等效果。

    改用 pygametkinter 实现更流畅动画(适合复杂项目)。

    到此这篇关于Python结合turtle简单开发一个烟花小工具的文章就介绍到这了,更多相关Python烟花内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • 使用Python打造跨年倒计时时钟并实现烟花特效与整点报时
    • 使用Python生成新春烟花效果的方法
    • python绘制春节烟花的示例代码
    • Python tkinter实现春节烟花效果demo
    • 基于Python记录一场2023的烟花
    • python实现跨年烟花动态效果
    • Python实现绘制圣诞树和烟花的示例代码

    站内搜索