为游戏添加音效,可以增加更多的趣味性
前面的文章《python小欢喜(八)俄罗斯方块 (11) 判断游戏是否结束》实现了俄罗斯方块游戏的基本功能。
接下来给游戏添加上音效。
先准备好音效素材:
其中
background.mp3 是背景音乐
down.wav 是方块落下来碰到其它方块的声音
remove.wav是一行方块被消去的声音
gameover.wav是游戏结束的声音
需要注意的是:
1 对于背景音乐,这一类播放时间比较长的声音资源
使用 pygame.mixer.music 进行处理
2 对于时间比较短的音效资源
使用 pygame.mixer.Sound 进行处理。并且 pygame.mixer.Sound 一般用于加载wav文件,不能加载mp3文件。
使用声音功能前需要先做初始化
pygame.mixer.pre_init(44100, -16, 2, 512)
pygame.mixer.init() # 初始化混音器
下面用这个游戏中的例子分别说一下 music与sound的用法。
1 播放背景音乐
#加载音乐文件
mp3_backGround = pygame.mixer.music.load("audio/background.mp3")
#设置背景音乐的音量
pygame.mixer.music.set_volume(Config.bgMusicVolume)
#播放背景音乐,参数-1表示循环播放
pygame.mixer.music.play(-1)
2 播放音效
#加载wave文件
wave_down = pygame.mixer.Sound("audio/down.wav")
#播放音效
wave_down.play()
以上只是例子,在实际播放时要在合适的时机调用play方法。
完整的python代码如下
config.py
# config.py
# 配置数据,全局变量的定义
#颜色常量的定义
BLACK = (0,0,0) # 用RGB值定义黑色
WHITE = (255,255,255) # 用RGB值定义白色
#配置参数类
class Config():
def __init__(self):
pass
screenWidth = 640
screenHeight= 800
blockWidth = 40
blockColor = 'blue'
downSpeed = 2
bgMusicVolume = 0.2
#方块组合形状的二维矩阵图示,1表示该处有方块,0表示没有
shapeGraph=[
(
[1,1,1,1],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
),
(
[0,1,0,0],
[1,1,1,0],
[0,0,0,0],
[0,0,0,0],
),
(
[1,0,0,0],
[1,0,0,0],
[1,0,0,0],
[1,0,0,0],
),
(
[1,1,1,0],
[1,0,0,0],
[0,0,0,0],
[0,0,0,0],
),
(
[1,0,0,0],
[1,0,0,0],
[1,1,0,0],
[0,0,0,0],
),
(
[1,1,0,0],
[1,0,0,0],
[1,0,0,0],
[0,0,0,0],
),
(
[1,0,0,0],
[1,1,0,0