本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯系我們以作處理,
以下文章來源于Python技術 ,作者派森醬
前言
這幾天很多地方陸續出現了降雪的天氣,對于年內的第一場雪,大家的熱情顯然是比較高漲的,比如很多人頂著雪花到各種景點打卡,再比如一位東北大哥要直播賣雪送辣白菜給南方人,
此事還上了微博熱搜,博主唐僧評論:“對賣家來說是買辣白菜送雪,對南方人來說是買雪送辣白菜”,網友 melodyming2 回復:“圣僧我悟了”,大家如果有興趣的話,可以到網上看一下詳細報道,這里就不多說了,
回到正題,本文我們使用 Python 來實作帶音樂的雪花飄落雪景圖,功能實作用到的 Python 庫為 pygame,之前已經多次介紹了,相信大家應該都比較熟悉了,
實作
雪景圖的實作還是比較簡單的,基本思路如下:
- 找一張自己喜歡的圖片作為背景圖
- 添加雪飛飄落效果
- 添加音樂效果
首先,我們來生成主視窗及設定背景圖,代碼實作如下:
bg_img = "bg.jpeg" bg_size = (900, 500) screen = pygame.display.set_mode(bg_size) pygame.display.set_caption("雪景圖") bg = pygame.image.load(bg_img)
視窗的寬、高根據背景的尺寸來設定,
接著我們來實作雪花飄落效果,先來定義一個雪花串列,代碼實作如下:
snow_list = [] for i in range(150): x_site = random.randrange(0, bg_size[0]) # 雪花圓心位置 y_site = random.randrange(0, bg_size[1]) # 雪花圓心位置 X_shift = random.randint(-1, 1) # x 軸偏移量 radius = random.randint(4, 6) # 半徑和 y 周下降量 snow_list.append([x_site, y_site, X_shift, radius])
再來實作雪花位置更新,實作動態下雪的效果,代碼實作如下:
for i in range(len(snow_list)): # 繪制雪花,顏色、位置、大小 pygame.draw.circle(screen, (255, 255, 255), snow_list[i][:2], snow_list[i][3] - 3) # 移動雪花位置(下一次回圈起效) snow_list[i][0] += snow_list[i][2] snow_list[i][1] += snow_list[i][3] # 如果雪花落出螢屏,重設位置 if snow_list[i][1] > bg_size[1]: snow_list[i][1] = random.randrange(-50, -10) snow_list[i][0] = random.randrange(0, bg_size[0])
因為我們要實作的是雪花不斷飄落的效果,因此再來設定一個回圈來不斷重繪螢屏,代碼實作如下:
while not done: # 訊息事件回圈,判斷退出 for event in pygame.event.get(): if event.type == pygame.QUIT: done = True screen.blit(bg, (0, 0)) # 雪花串列回圈 for i in range(len(snow_list)): # 繪制雪花,顏色、位置、大小 pygame.draw.circle(screen, (255, 255, 255), snow_list[i][:2], snow_list[i][3] - 3) # 移動雪花位置(下一次回圈起效) snow_list[i][0] += snow_list[i][2] snow_list[i][1] += snow_list[i][3] # 如果雪花落出螢屏,重設位置 if snow_list[i][1] > bg_size[1]: snow_list[i][1] = random.randrange(-50, -10) snow_list[i][0] = random.randrange(0, bg_size[0]) # 重繪螢屏 pygame.display.flip() clock.tick(20)
最后,我們再來為雪景圖添加一段音樂效果,代碼實作如下:
track = pygame.mixer.music.load('my.mp3') # 加載音樂檔案 pygame.mixer.music.play() # 播放音樂流 pygame.mixer.music.fadeout(100000) # 設定音樂結束時間
到此我們就完成了雪景圖的繪制作業了,下面一起來欣賞一下 GIF 效果:
大家如果想看(聽)帶音樂的雪景圖,可以自己運行程式感受一下,這里就不給大家錄視頻了,
總結
本文我們給大家介紹了用 Python 制作帶音樂的雪花飄落雪景圖的一種實作方式,大家如果感興趣的話,可以自己動手試一下,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/228403.html
標籤:Python
上一篇:11 Serializer組件
