Почему Pygame играет только последний звук? - PullRequest
0 голосов
/ 14 декабря 2018

я получил этот код:

a_0 = pygame.mixer.sound("a.mp3",)
a = pygame.mixer.music

b_0 = pygame.mixer.music.load("b.mp3")
b = pygame.mixer.music

c_0 = pygame.mixer.music.load("c.mp3",)
c   = pygame.mixer.music

d_0 = pygame.mixer.music.load("d.mp3")
d   = pygame.mixer.music

e_0 = pygame.mixer.music.load("e.mp3",)
e = pygame.mixer.music

Когда я хочу использовать для воспроизведения звука d (that emans d.mp3) с:

d.play()

, он воспроизводит только последний звук в списке, что означаетe.mp3 вместо d.mp3.Что я здесь не так делаю?

1 Ответ

0 голосов
/ 14 декабря 2018

pygame.music.mixer.load() ничего не возвращает.Таким образом, вы не можете присвоить его переменной.Он загружается в микшер и подготавливает его к воспроизведению. Документация

Вам нужен список или словарь песен, которые вы хотите воспроизвести, затем, когда вы захотите воспроизвести одну, вам нужно загрузить ее в микшер и воспроизвести ее:

def play_song(name):
    pygame.mixer.music.load(name)
    pygame.mixer.music.set_volume(0.3)  # you can also set the volume
    pygame.mixer.music.play(loops=-1)

Это специально для mixer.music.

pygame.mixer.Sound возвращает звуковой объект, который можно сохранить для дальнейшего использования: документация .Таким образом, вы можете загрузить каталог звуков в список Python.

sounds_list = []
sounds_list.append(pygame.mixer.Sound('gun_fire.wav'))
sounds_list.append(pygame.mixer.Sound('coin_pickup.wav'))
# add more sounds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...