天天看點

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

沒有音樂和音效的遊戲是沒有靈魂的,這回講解如何處理背景音樂及跳躍音效。加載music及sound的方法,之前已經寫過,見:pygame 筆記-8 背景音樂&子彈音效 。

先介紹一個很棒的生成各種音效的網站:​​https://www.bfxr.net/​​,該網站提供了一個音效生成器,界面如下:

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

利用該工具,可以生成各種跳躍、爆炸之類的音效wav檔案。

然後就是背景音樂了,pygame支援wav, mp3, ​​ogg​​等這種格式,但是考慮到背景音樂通常比較大,不建議用wav做背景音樂,最好是mp3或ogg格式,mp3格式有專利,而且pygame對mp3的相容性不太好,最佳推薦是ogg格式。

提供2個線上轉換成ogg格式的網址:

​​https://cloudconvert.com/wav-to-ogg​​

​​https://cloudconvert.com/mp3-to-ogg​​

另外,再送一波福利,可以在opengameart.org上找到很多遊戲的常用背景音樂:

​​https://opengameart.org/art-search-advanced?keys=&field_art_type_tid%5B%5D=12&sort_by=count&sort_order=DESC​​

有了這些素材後,就該寫代碼了:

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

将準備好的聲音素材,放到指定的目錄,參考上圖。

然後在main.py的load_data中,加載跳躍的音效:

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效
pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

View Code

然後在new函數中,加載背景音樂

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效
pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

run函數中,循環播放背景音樂:

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效
pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

注:這裡用了一個小技巧,GameOver的時候,如果硬生生把背景音樂關掉,有點突兀,用fadeout淡出方法,會友好一些。

如果start界面和game over界面,如果希望放另一種背景音樂,也依葫蘆畫瓢:

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效
pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

View Code 

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效
pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

目前為止,跳躍的音效還沒使用到,可以要Player類的jump函數中,播放該音效:

pygame-KidsCanCode系列jumpy-part14-背景音樂及音效
pygame-KidsCanCode系列jumpy-part14-背景音樂及音效

部落格無法直接上傳視訊檔案,最終帶聲音效果的視訊如下:

連結: ​​https://pan.baidu.com/s/1DTalKLFfYBOLw3MQpLIsig​​ 提取碼: wnhs 

源碼:​​https://github.com/yjmyzz/kids-can-code/tree/master/part_14​​

作者:菩提樹下的楊過

本文版權歸作者,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。