
0 前言
之前寫了一篇用 Python 畫一個(gè)小豬佩奇和哆啦 A 夢,然后最近看到有人用 turtle 畫了一個(gè)心,覺得挺有意思的,于是把代碼復(fù)制到本地,再加了個(gè)播放音樂。
1 環(huán)境說明
Win10 系統(tǒng)下 Python3,編譯器是 Pycharm 。turtle 和 time 是 Python 自帶的模塊,不用辛苦安裝;pygame 可以直接用 pip install pygame 安裝,要是不知道該怎么安裝,那還是用 Pycharm 安裝吧。


2 實(shí)現(xiàn)
代碼有點(diǎn)多,所以是分開來,用的時(shí)候按順序復(fù)制就好。
先導(dǎo)入要用的庫
import pygame
import time
import turtle as t
然后是播放音樂的功能,這里記得要把文件的路徑修改一下
file = 'G:\years.mp3' # mp3 的路徑
pygame.mixer.init() # 初始化音頻
track = pygame.mixer.music.load(file) # 載入音樂文件
pygame.mixer.music.play() # 開始播放
turtle 的設(shè)置,背景色和顏色可以使用 #bf360c 或者 red 來替換顏色,具體的顏色喜歡哪個(gè)就用哪個(gè),看著舒服和好看就行。
t.title('dalao 帶帶我') # 設(shè)置標(biāo)題欄文字
t.hideturtle() # 隱藏箭頭
t.getscreen().bgcolor('#f0f0f0') # 背景色
t.color('#c1e6c6', 'red') # 設(shè)置畫線顏色、填充顏色,可以直接寫 green,也可以用 #c1e6c6
t.pensize(2) # 筆的大小
t.speed(2) # 圖形繪制的速度,1~10
t.up() # 移動(dòng),不畫線
t.goto(0, -150)
下面這里開始畫愛心
t.down() # 移動(dòng),畫線
t.begin_fill() # 開始填充
t.goto(0, -150)
t.goto(-175.12, -8.59)
t.left(140)
pos = []
for i in range(19):
t.right(10)
t.forward(20)
pos.append((-t.pos()[0], t.pos()[1]))
for item in pos[::-1]:
t.goto(item)
t.goto(175.12, -8.59)
t.goto(0, -150)
t.left(50)
t.end_fill() # 結(jié)束填充,顯示填充效果
這里開始寫字,t.goto(0, 220) 的意思是箭頭前往到這個(gè)位置,(0, 0) 是中心。
(x, y),x 是左右,正數(shù)為右,負(fù)數(shù)為左;y 是上下,正數(shù)為上,負(fù)數(shù)為下。
字體可以修改,黑體、方正舒體、華文琥珀等等,找一個(gè)合適的就好。
t.color("black") # 設(shè)置顏色
t.up()
t.goto(0, 220)
t.write("大佬,帶帶我~", font=(u"方正舒體", 36, "normal"), align="center")
t.goto(200, -250)
t.write('by 偽君子', font=(u"方正舒體", 10, "bold"))
結(jié)束,如果下面的代碼注釋掉 t.done() 的話,那么結(jié)束播放音樂后就會(huì)自動(dòng)退出;如果不注釋的話,運(yùn)行完代碼會(huì)停留在畫圖的界面,音樂播放到結(jié)束設(shè)置好的時(shí)間就結(jié)束。
這里看你喜歡,我個(gè)人是喜歡播放到一定時(shí)間就自動(dòng)退出,所以我注釋掉了。
time.sleep(10) # 畫完后再播放 10 秒音樂,可以修改時(shí)間
pygame.mixer.music.fadeout(100) # 停止播放
#t.done()
錄制了一個(gè) gif 做示范

3 相關(guān)說明
源代碼是在知乎專欄那看見的,這里復(fù)制下來進(jìn)行了修改和添加。
鏈接:https://zhuanlan.zhihu.com/p/38448462(點(diǎn)擊閱讀原文)
題圖:Photo by Erik Witsoe on Unsplash