音效素材
编程猫社区-素材库:https://shequ.codemao.cn/mall
爱给网 :https://www.aigei.com/
OpenGameArt.org
DIY 声音
Bfxr, 点击左侧声音类型按钮,随机生成音效。Export Wav 导出音效。
添加音效
指定声音文件夹的位置
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