网站搜索

在 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 存储库中找到示例中的所有代码。

提高用户对音乐的参与度

您可以使用音乐和音效来提高用户对游戏的参与度。音乐和音效可以增加沉浸感,让游戏变得更加有趣。您甚至可以以创造性的方式将它们用作核心游戏机制。

相关文章: