Тут всё довольно просто.
Но сначала скачаем нужные звуки (пару звуков)
Скачать можно, например, из этой библиотеки. Звуки лучше выбирать формата .ogg
Далее проследите чтобы в папке проекта были все нужные файлы:
- исполняемый файл .py
- 1-ый музыкальный файл формата ogg
- 2-ой музыкальный файл формата ogg
Теперь, собственно, код
Создадим игровое окно
# подключаем модуль 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.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 — это максимум.
Источник: vc.ru