{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Музыка в 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 комментариев
Раскрывать всегда