{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

Музыка в pygame

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

Идём в оф. документацию pygame и находим микшер
Читаем описание самого первого метода

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

Скачать можно, например, из этой библиотеки. Звуки лучше выбирать формата .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 - это максимум.

0
Комментарии
-3 комментариев
Раскрывать всегда