Menu
CoddyTech

Einen Sound laden

Teil des Abschnitts Sound und Spielgefühl der Pygame-Journey von Coddy. Lektion 1 von 23.

pygame spielt kurze Töne mit pygame.mixer.Sound ab. Gib den Pfad zu einer Sounddatei an, und du erhältst ein Sound-Objekt:

jump_sound = pygame.mixer.Sound("assets/sounds/jump.ogg")

pygame.init() startet den Mixer, also erstelle deine Sounds danach. Erstelle jeden Sound einmal vor der Schleife. Beim Laden wird die Datei von der Festplatte gelesen; innerhalb der Schleife würde sie 60-mal pro Sekunde gelesen werden.

Wenn der Moment gekommen ist, rufe play() auf:

jump_sound.play()

play() startet den Ton und kehrt sofort zurück. Das Spiel läuft weiter, während du ihn hörst, und derselbe Sound kann erneut abgespielt werden, bevor er endet.

Der Ordner assets/sounds/ enthält die Sounds, die du verwenden kannst: jump, coin, powerup, laser, explosion, hit und weitere, alle als .ogg-Dateien. Öffne den Tab „Assets“ neben dem Spiel, um sie anzuhören.

challenge icon

Aufgabe

Einfach

Das grüne Quadrat springt, wenn du die Leertaste drückst. Lass es einen Ton abspielen:

  1. Lade vor der Schleife assets/sounds/jump.ogg in jump_sound.
  2. Rufe jump_sound.play() dort auf, wo der Sprung beginnt, neben speed_y = -14.

Probier es selbst

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()

Alle Lektionen in Sound und Spielgefühl

Übe selbstständig: Pygame-Playground