Музыка в pygame

Тут всё довольно просто.

Идём в оф. документацию <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fwww.pygame.org%2Fdocs%2Fref%2Fmixer.html&postId=403932" rel="nofollow noreferrer noopener" target="_blank">pygame</a> и находим микшер
Идём в оф. документацию pygame и находим микшер
Читаем описание самого первого метода
Читаем описание самого первого метода

Но сначала скачаем нужные звуки (пару звуков)

Скачать можно, например, из этой библиотеки. Звуки лучше выбирать формата .ogg

Музыка в pygame

Далее проследите чтобы в папке проекта были все нужные файлы:

  • исполняемый файл .py
  • 1-ый музыкальный файл формата ogg
  • 2-ой музыкальный файл формата ogg
Музыка в pygame

Теперь, собственно, код

Создадим игровое окно

# подключаем модуль import pygame # Создаем окно window = pygame.display.set_mode((300, 300)) # Озаглавливаем окно pygame.display.set_caption("Music BOX") # ГЛАВНЫЙ ЦИКЛ while True: pygame.display.update() # Обновление кадров экрана pygame.time.delay(40) # Задержка

Добавим в главный цикл обработку закрытия (нажатие на красный крестик)

for e in pygame.event.get(): if e.type == pygame.QUIT: pygame.quit()

Должен получится черный экран, который можно закрыть по крестику

Музыка в pygame

До главного цикла подгружаем музыку

#музыка pygame.mixer.init() pygame.mixer.music.load('scan.ogg') pygame.mixer.music.play()

Теперь при запуске у нас играет фоновая музыка

Давайте сделаем воспроизведение второго звука по нажатию клавиши "W". А по нажатию на "S" -- остановим его.

# Подгружаем звук sound = pygame.mixer.Sound('music.ogg')

И теперь проверим все нажатые клавиши и поработаем со звуком

# Получаем в переменную keys все нажатые клавиши keys = pygame.key.get_pressed() # проверяем клавиши if keys[pygame.K_w]: # включаем звук sound.play() elif keys[pygame.K_s]: # выключаем звук pygame.mixer.pause()

Итоговый код

Наша музыкальная коробка может включать и выключать звук. Итоговый код выглядит следующим образом:

# подключаем модуль import pygame # Создаем окно window = pygame.display.set_mode((300, 300)) # Озаглавливаем окно pygame.display.set_caption("Music BOX") #музыка pygame.mixer.init() pygame.mixer.music.load('scan.ogg') pygame.mixer.music.play() sound = pygame.mixer.Sound('music.ogg') while True: for e in pygame.event.get(): if e.type == pygame.QUIT: pygame.quit() keys = pygame.key.get_pressed() if keys[pygame.K_w]: sound.play() elif keys[pygame.K_s]: pygame.mixer.pause() pygame.display.update() pygame.time.delay(40)

Заключение

Применяю эту логику, мы можем добавлять звуки на столкновения спрайтов, передвижения, перехода на следующий уровень, победы или проигрыша. Pygame также работает с форматами .wav, .mp3

А с функцией sound1.set_volume(0.5) мы можем задавать громкость звука, где 0 - это минимум, 1 - это максимум.

1
Начать дискуссию