8.添加音效

音效素材编程猫社区-素材...

音效素材
编程猫社区-素材库:https://shequ.codemao.cn/mall
爱给网 :https://www.aigei.com/
OpenGameArt.org

DIY 声音
Bfxr, 点击左侧声音类型按钮,随机生成音效。Export Wav 导出音效。
blank

添加音效
指定声音文件夹的位置

import pygame
import random
from os import path

img_dir = path.join(path.dirname(__file__), 'img')
snd_dir = path.join(path.dirname(__file__), 'snd')

加载射击声音文件(加载图片之后)

# 加载声音
shoot_sound = pygame.mixer.Sound(path.join(snd_dir, 'pew.wav'))

使用射击声音
Player类中,shoot() 函数内,调用 声音的 play() 方法

def shoot(self):
        bullet = Bullet(self.rect.centerx, self.rect.top)
        all_sprites.add(bullet)
        bullets.add(bullet)
        shoot_sound.play()

添加爆炸声音

# 加载声音
shoot_sound = pygame.mixer.Sound(path.join(snd_dir, 'pew.wav'))
expl_sounds = []
for snd in ['expl3.wav', 'expl6.wav']:
    expl_sounds.append(pygame.mixer.Sound(path.join(snd_dir, snd)))

使用爆炸声音

 # 检查子弹是否击中了敌人
    hits = pygame.sprite.groupcollide(mobs, bullets, True, True)
    for hit in hits:
        score += 50 - hit.radius
        random.choice(expl_sounds).play()
        m = Mob()
        all_sprites.add(m)
        mobs.add(m)

添加背景音乐
加载背景音乐:

expl_sounds = []
for snd in ['expl3.wav', 'expl6.wav']:
    expl_sounds.append(pygame.mixer.Sound(path.join(snd_dir, snd)))
pygame.mixer.music.load(path.join(snd_dir, 'tgfcoder-FrozenJam-SeamlessLoop.ogg'))
pygame.mixer.music.set_volume(0.4)

播放背景音乐
在主循环前,loops=-1 表示重复播放

score = 0
pygame.mixer.music.play(loops=-1)
# 游戏主循环
running = True