国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

游戲開發(fā)中的音樂和音效怎么去制作

2022-09-21 15:18 作者:游戲開發(fā)RAIN  | 我要投稿

游戲開發(fā)中分背景音樂和音效,同時每個游戲的設(shè)置里面都會有開關(guān),是否開關(guān)音樂和音效,所以我們做音樂管理模塊的時候都要充分的考慮進去。Cocos Creator提供了一個AudioSource組件用來播放音樂或音效,我們整個聲音管理模塊就利用它來支撐最終的音樂音效的播放。

我們創(chuàng)建一個音樂管理的單例組件類, 在框架初始化的時候,我們把它實例化出來,加到GameApp這個節(jié)點上。然后調(diào)用管理類單例的Init接口,在Init接口中,往GameApp節(jié)點上添加一些AudioSource的組件實例。添加幾個,可以根據(jù)設(shè)計來決定,可以動態(tài)的擴展,也可以寫死固定的幾個AudioSource,這樣整個游戲就固定了能支持多少個音效同時播放。我在這個項目里面設(shè)置了一個MAX_SOUNDS為8。背景音樂專門有一個單獨放置AudioSource組件用來播放。同時我們要從本地獲取用戶的設(shè)置,看看是否禁止播放背景音樂和音效。所以聲音管理類的數(shù)據(jù)成員如圖

MAX_SOUNDS: 最大能支持的同時播放的音效的數(shù)目,目前是8,如果是第9個音效播放的話,就會把原來的第0個給沖掉。

MUSIC_MUTE_KEY: 從本地讀取背景是否音樂靜音的key,用這個key去從本地讀取配置;

SOUND_MUTE_KEY: 從本地讀取音效是否靜音的key, 用這個key從本地讀取配置;

nowIndex: 當(dāng)前音效使用到了第幾個音效組件實例,如果超過MAX_SOUNDS,又從0開始,每次播放一個音效nowIndex會往后+1, 這樣8個AudioSource組件輪流播放音效,最多同時支持8個音效。如果超過8個,又從第0個開始;

sounds: 音效的所有AudioSource組件集合;

bgMusic: 播放背景音樂的AudioSource組件;

isMusicMute: 背景音樂是否靜音,初始值從本地配置讀取;

isSoundMute: 音效是否靜音, 初始值從本地配置讀取;

在Init函數(shù)里面我們初始化對應(yīng)的AudioSource組件實例和相關(guān)參數(shù),如代碼截圖:

28~31行for循環(huán),將AudioSource組件實例創(chuàng)建出來,并加入到節(jié)點(GameApp)上。33行創(chuàng)建播放背景音樂的AudioSource聲音組件的實例。36~45行從本地讀取是否靜音的初始值。

接下來分析一下播放音樂音效的接口playBgMusic/stopBgMusic,


playBgMusic:

clip: 函數(shù)參數(shù),聲音資源對象;

isLoop: 函數(shù)參數(shù),是否循環(huán)播放;

進入函數(shù)后,將聲音clip設(shè)置到背景音樂的AudioSource組件實例上,如果是靜音,就把聲音的大小調(diào)成0,然后調(diào)用AudioSource組件的play函數(shù)。

stopBgMusic: 直接調(diào)用背景音樂組件實例的停止接口,停止播放。


接下來分析接口playSound,如圖

如果當(dāng)前音效靜音,直接返回不播放,否者以當(dāng)前nowIndex為索引的AudioSource來播放聲音,然后再nowIndex++, 下一次播放音效就到下一個AudioSource組件了。如果nowIndex超過了最大的數(shù)目,又從0開始,這樣最早的那個音效就會被沖掉,因為游戲音效本身時間就短,所以這種設(shè)計方式也是可以的,簡單方便。

接下來分析接口setMusicMute/setSoundMute

當(dāng)用戶在設(shè)置界面設(shè)置音樂音效是否靜音的時候,可以調(diào)用這兩個函數(shù),設(shè)置變量值,然后再把最新的變量值保存到本地存儲,下次游戲啟動的時候能獲取上一次保存的值。

本節(jié)的聲音管理模塊設(shè)計就講解到這里,大家可以對著代碼來閱讀,掌握鞏固好這些代碼。

歡迎加入我的游戲開發(fā)交流群,

給你分享更多游戲源碼及其他學(xué)習(xí)素材


游戲開發(fā)中的音樂和音效怎么去制作的評論 (共 條)

分享到微博請遵守國家法律
息烽县| 崇文区| 宜春市| 荔波县| 凭祥市| 博客| 呈贡县| 乌拉特中旗| 收藏| 天全县| 汉寿县| 莲花县| 隆化县| 卫辉市| 库伦旗| 呈贡县| 正定县| 巫溪县| 溧阳市| 牡丹江市| 新源县| 嵩明县| 凉山| 綦江县| 调兵山市| 兴文县| 晋江市| 西和县| 金川县| 偏关县| 镇平县| 和政县| 苏州市| 静安区| 肇庆市| 和静县| 乾安县| 南康市| 平果县| 白银市| 青冈县|