Cargar un sonido
Parte de la sección Sonido y sensaciones del juego del Journey de Pygame de Coddy. Lección 1 de 23.
pygame reproduce sonidos cortos mediante pygame.mixer.Sound. Pásale la ruta de un archivo de sonido y obtendrás un objeto Sound:
jump_sound = pygame.mixer.Sound("assets/sounds/jump.ogg")pygame.init() inicia el mezclador, así que crea tus sonidos después. Crea cada Sound una sola vez, antes del bucle. La carga lee el archivo del disco; dentro del bucle lo leería 60 veces por segundo.
Cuando llegue el momento, llama a play():
jump_sound.play()play() inicia el sonido y regresa de inmediato. El juego sigue ejecutándose mientras lo escuchas, y el mismo Sound puede reproducirse de nuevo antes de que termine.
La carpeta assets/sounds/ contiene los sonidos que puedes usar: salto, moneda, potenciador, láser, explosión, impacto y más; todos son archivos .ogg. Abre la pestaña Assets junto al juego para escucharlos.
Desafío
FácilEl cuadrado verde salta cuando presionas la barra espaciadora. Haz que reproduzca un sonido:
- Antes del bucle, carga
assets/sounds/jump.oggenjump_sound. - Llama a
jump_sound.play()donde comienza el salto, junto aspeed_y = -14.
Pruébalo tú mismo
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()
Todas las lecciones de Sonido y sensaciones del juego
1Efectos de sonido
Cargar un sonidoSonido al ocurrir un eventoVolumen del sonidoSonidos y teclas presionadas4Sacudida de pantalla y destello de impacto
Sacudida de pantallaDestello de impactoPausa tras el impactoMantén la sutilezaPractica por tu cuenta: Playground de Pygame