Загрузить звук
Часть раздела Звук и игровые ощущения путешествия по Pygame на Coddy. Урок 1 из 23.
pygame воспроизводит короткие звуки с помощью pygame.mixer.Sound. Укажи путь к звуковому файлу, и получишь объект Sound:
jump_sound = pygame.mixer.Sound("assets/sounds/jump.ogg")pygame.init() запускает микшер, поэтому создавай объекты Sound после него. Создавай каждый объект Sound один раз, до цикла. Загрузка считывает файл с диска; внутри цикла файл считывался бы 60 раз в секунду.
Когда наступит нужный момент, вызови play():
jump_sound.play()play() запускает звук и сразу возвращает управление. Игра продолжает работать, пока ты его слышишь, и тот же объект Sound может воспроизводиться снова, прежде чем закончится.
В папке assets/sounds/ находятся звуки, которые можно использовать: прыжок, монета, усиление, лазер, взрыв, попадание и другие — все в файлах .ogg. Открой вкладку Assets рядом с игрой, чтобы послушать их.
Задание
ЛегкоЗелёный квадрат прыгает, когда ты нажимаешь пробел. Сделай так, чтобы при этом воспроизводился звук:
- Перед циклом загрузи
assets/sounds/jump.oggвjump_sound. - Вызови
jump_sound.play()в том месте, где начинается прыжок, рядом сspeed_y = -14.
Попробуйте сами
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Jump")
clock = pygame.time.Clock()
player = pygame.Rect(220, 280, 40, 40)
speed_y = 0
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE and player.bottom == 320:
speed_y = -14
speed_y += 1
player.y += speed_y
if player.bottom > 320:
player.bottom = 320
speed_y = 0
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (80, 80, 100), (0, 320, 480, 40))
pygame.draw.rect(screen, (90, 200, 120), player)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Все уроки раздела Звук и игровые ощущения
4Тряска экрана и вспышка при попадании
Тряска экранаВспышка при попаданииОстановка при попаданииСоблюдайте умеренность6Доведём «Звёздный патруль» до блеска
Звуки «Звёздного патруля»Искры при каждом попаданииПотренируйтесь самостоятельно: Песочница Pygame