{"id":13455,"url":"\/distributions\/13455\/click?bit=1&hash=8bce2c32fc522b9cfe1ab89089eff75ab558dbec8812c3dda390faecf1c743f2","title":"\u00ab\u0410 \u0442\u044b \u0442\u043e\u0447\u043d\u043e \u0440\u0438\u0435\u043b\u0442\u043e\u0440?\u00bb \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0435\u043b\u043e\u0432\u043a\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0431\u0440\u043e\u043a\u0435\u0440\u0443","buttonText":"\u041f\u043e\u043a\u0430\u0436\u0438\u0442\u0435","imageUuid":"ca4cf1a1-a5ed-5aca-9f34-357accc11bb1","isPaidAndBannersEnabled":false}
Юджин Т

Музыка в 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
Комментарии
Читать все 0 комментариев
null