在 Pygame 中添加音效和音乐
为您的游戏玩家提供一些可以在玩 Pygame 的音乐和音效功能时聆听的内容。
音乐和音效是游戏体验的重要组成部分,因此 Pygame 自然可以让您将它们添加到游戏中。了解如何添加背景音乐以及如何播放音效以响应游戏内事件。还了解如何执行循环和调节音量等基本操作。
创建一个简单的游戏
首先创建一个简单的游戏,玩家可以在其中左右移动。要创建此游戏,请使用 pip 安装 Pygame 模块:
pip install pygame导入并初始化 Pygame 模块,并创建一个大小为 500x500 并带有标题的窗口。然后,初始化玩家的变量 x、y、width、height 和 vel。这里 vel 是玩家的速度。
import pygame
pygame.init()
window = pygame.display.set_mode((500,500))
pygame.display.set_caption("Simple Game")
x = 50
y = 50
width = 40
height = 60
vel = 5
run = True
之后,创建一个 while 循环,该循环将运行直到您关闭游戏窗口。使用 pygame.key.get_pressed() 方法检查键盘输入。如果用户分别按向左或向右箭头键,则减少或增加 x 坐标。然后,用给定的坐标绘制一个矩形并更新显示。
while run:
pygame.time.delay(100)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
x -= vel
if keys[pygame.K_RIGHT]:
x += vel
window.fill((0,0,0))
pygame.draw.rect(window, (255,0,0), (x, y, width, height))
pygame.display.update()
pygame.quit()使用混音器模块添加背景音乐
使用 Pygame 的 Mixer 模块向游戏添加背景音乐是一个简单的过程。首先创建音乐对象并加载所需的音乐文件。然后您可以在播放之前调整音量。这是一个例子:
pygame.mixer.music.load("bgmusic.wav")
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play()
您可以轻松地从不同的网站下载无版权的音乐和音效来进行试验。
使用 simpleaudio 模块添加音效
您还可以使用 simpleaudio 模块向游戏添加音效。要安装该模块,请使用以下命令:
pip install simpleaudio首先,导入 simpleaudio 模块并从声音文件创建一个 WaveObject。
import simpleaudio as sa
sound = sa.WaveObject.from_wave_file('sound.wav')在现有的箭头按下检查中,调用 play() 方法以在角色向左或向右移动时播放声音:
if keys[pygame.K_LEFT]:
x -= vel
play = sound.play()
if keys[pygame.K_RIGHT]:
x += vel
play = sound.play()
循环音乐和调节音量等附加功能
您还可以实现基本效果,例如使用 play() 函数循环播放音乐以及使用 set_volume() 调整音量。 set_volume() 函数采用 0 到 1 之间的浮点值来定义音乐的音量。 play() 函数采用一个参数来指定重复音乐的次数。通过传递 -1 作为参数,您可以告诉它循环播放音乐。
pygame.mixer.music.load("bgmusic.wav")
pygame.mixer.music.set_volume(0.3)
pygame.mixer.music.play(-1)
sound = sa.WaveObject.from_wave_file('sound.wav')添加两个 if 语句来测试用户是否按下向上或向下箭头键。如果按向上箭头键,则将音乐音量设置为 1.0;如果按向下箭头键,则将音乐音量设置为 0.0。
if keys[pygame.K_UP]:
pygame.mixer.music.set_volume(1.0)
if keys[pygame.K_DOWN]:
pygame.mixer.music.set_volume(0.0)添加音乐和音效的替代方法
您还可以使用其他方法来添加音乐和声音效果,例如 pyglet 模块。下面是代码片段:
import pyglet
music = pyglet.media.load("bgmusic.wav")
music.play()
sound = pyglet.media.load("sound.wav")
sound.play()使用 pyglet 等第三方模块有很多好处。它们提供了一种更有效的方式来添加音乐和声音效果。
您可以在此 GitHub 存储库中找到示例中的所有代码。
提高用户对音乐的参与度
您可以使用音乐和音效来提高用户对游戏的参与度。音乐和音效可以增加沉浸感,让游戏变得更加有趣。您甚至可以以创造性的方式将它们用作核心游戏机制。
