Wczytywanie dźwięku
Część sekcji Dźwięk i odczucia z gry ścieżki Pygame w Coddy. Lekcja 1 z 23.
pygame odtwarza krótkie dźwięki za pomocą pygame.mixer.Sound. Podaj ścieżkę do pliku dźwiękowego, a otrzymasz obiekt Sound:
jump_sound = pygame.mixer.Sound("assets/sounds/jump.ogg")pygame.init() uruchamia mikser, więc twórz obiekty Sound po jego wywołaniu. Utwórz każdy obiekt Sound raz, przed pętlą. Wczytywanie odczytuje plik z dysku; wewnątrz pętli odczytywałoby go 60 razy na sekundę.
Gdy nadejdzie odpowiedni moment, wywołaj play():
jump_sound.play()play() rozpoczyna odtwarzanie dźwięku i natychmiast zwraca sterowanie. Gra działa dalej, gdy słyszysz dźwięk, a ten sam obiekt Sound może odtworzyć dźwięk ponownie, zanim się skończy.
Folder assets/sounds/ zawiera dostępne dźwięki: jump, coin, powerup, laser, explosion, hit i inne, wszystkie w plikach .ogg. Otwórz kartę Assets obok gry, aby ich posłuchać.
Wyzwanie
ŁatwyZielony kwadrat podskakuje, gdy naciskasz spację. Spraw, aby odtwarzał dźwięk:
- Przed pętlą załaduj
assets/sounds/jump.oggdojump_sound. - Wywołaj
jump_sound.play()w miejscu rozpoczęcia skoku, obokspeed_y = -14.
Spróbuj swoich sił
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()
Wszystkie lekcje w sekcji Dźwięk i odczucia z gry
1Efekty dźwiękowe
Wczytywanie dźwiękuDźwięk w reakcji na zdarzenieGłośność dźwiękuDźwięki i przytrzymane klawisze4Wstrząs ekranu i błysk po trafieniu
Wstrząs ekranuBłysk po trafieniuPauza przy trafieniuNie przesadzajPoćwicz samodzielnie: Edytor online Pygame