Python結(jié)合turtle簡(jiǎn)單開發(fā)一個(gè)煙花小工具
本系列博文將通過Python代碼示例和詳細(xì)步驟講解,讓學(xué)習(xí)過程更加生動(dòng)有趣。Python語言簡(jiǎn)潔高效,兼具靈活性與實(shí)用性,歡迎持續(xù)關(guān)注。
下面是一個(gè)使用 Python + turtle 模塊 實(shí)現(xiàn)的簡(jiǎn)單 煙花效果展示小工具。它使用了 turtle 圖形庫,無需安裝額外依賴(Python 標(biāo)準(zhǔn)庫自帶),適合在本地直接運(yùn)行。我們只需要安裝好python環(huán)境。然后就可以運(yùn)行。
效果體驗(yàn)

為了方便初學(xué)者體驗(yàn)。分享源代碼。手動(dòng)來運(yùn)行py
python yanhua.py
源代碼
import turtle
import random
import math
# 設(shè)置屏幕
screen = turtle.Screen()
screen.bgcolor("black")
screen.title("Python 煙花效果")
screen.tracer(0, 0) # 關(guān)閉自動(dòng)刷新,提高性能
# 煙花粒子類
class FireworkParticle:
def __init__(self, x, y, color):
self.t = turtle.Turtle()
self.t.shape("circle")
self.t.shapesize(0.1, 0.1) # 小圓點(diǎn)
self.t.color(color)
self.t.penup()
self.t.goto(x, y)
self.t.pendown()
# 隨機(jī)方向和速度
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) # 存活幀數(shù)
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()
# 存儲(chǔ)所有粒子
particles = []
# 創(chuàng)建煙花函數(shù)
def create_firework(x, y):
colors = ["red", "orange", "yellow", "green", "blue", "purple", "white", "pink"]
for _ in range(30): # 每個(gè)煙花30個(gè)粒子
color = random.choice(colors)
particles.append(FireworkParticle(x, y, color))
# 隨機(jī)在屏幕中發(fā)射煙花
def launch_random_firework():
x = random.randint(-300, 300)
y = random.randint(-100, 200)
create_firework(x, y)
# 主循環(huán)
frame = 0
while True:
frame += 1
if frame % 60 == 0: # 每60幀(約1秒)發(fā)射一個(gè)煙花
launch_random_firework()
# 更新粒子
for p in particles[:]:
if not p.move():
p.hide()
particles.remove(p)
screen.update() # 手動(dòng)刷新畫面
turtle.delay(10) # 控制速度
# 注意:正常退出會(huì)被無限循環(huán)阻塞,可按 Ctrl+C 強(qiáng)制退出如何運(yùn)行
確保你安裝了 Python(3.6+ 推薦)。
將上面代碼保存為 yanhua.py。運(yùn)行后
會(huì)彈出一個(gè)黑色窗口,自動(dòng)播放煙花動(dòng)畫。
關(guān)閉窗口或按Ctrl+C(在終端中)退出程序。
效果說明
每秒隨機(jī)位置發(fā)射一個(gè)彩色煙花。
每個(gè)煙花由 30 個(gè)彩色粒子組成,呈放射狀散開并受“重力”影響下落。
使用了 turtle.tracer(0,0) + 手動(dòng) update() 提高性能,避免閃爍。
可擴(kuò)展建議
添加音效(需 playsound 或 pygame)。
支持鼠標(biāo)點(diǎn)擊發(fā)射煙花。
增加爆炸聲、多層煙花、漸變色等效果。
改用 pygame 或 tkinter 實(shí)現(xiàn)更流暢動(dòng)畫(適合復(fù)雜項(xiàng)目)。
到此這篇關(guān)于Python結(jié)合turtle簡(jiǎn)單開發(fā)一個(gè)煙花小工具的文章就介紹到這了,更多相關(guān)Python煙花內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python簡(jiǎn)單的制作圖片驗(yàn)證碼實(shí)例
本篇文章主要介紹了Python簡(jiǎn)單的制作圖片驗(yàn)證碼實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Python中shutil模塊的常用文件操作函數(shù)用法示例
shutil模塊提供比OS模塊更強(qiáng)大的本地文件操作功能,包括文件的壓縮和解壓縮等,下面我們就來列舉Python中shutil模塊的常用文件操作函數(shù)用法示例:2016-07-07
Python隨機(jī)數(shù)用法實(shí)例詳解【基于random模塊】
這篇文章主要介紹了Python隨機(jī)數(shù)用法,結(jié)合實(shí)例形式分析了基于random模塊的各種隨機(jī)數(shù)操作常用技巧,需要的朋友可以參考下2017-04-04
python scipy求解非線性方程的方法(fsolve/root)
今天小編就為大家分享一篇python scipy求解非線性方程的方法(fsolve/root),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Python+tkinter模擬“記住我”自動(dòng)登錄實(shí)例代碼
這篇文章主要介紹了Python+tkinter模擬“記住我”自動(dòng)登錄實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01

