本系列博文将通过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() 提高性能,避免闪烁。
可扩展建议
添加音效(需 playsound 或 pygame)。
支持鼠标点击发射烟花。
增加爆炸声、多层烟花、渐变色等效果。
改用 pygame 或 tkinter 实现更流畅动画(适合复杂项目)。
到此这篇关于python结合turtle简单开发一个烟花小工具的文章就介绍到这了,更多相关python烟花内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论