Suono al verificarsi di un evento
Fa parte della sezione Suoni e sensazioni di gioco del percorso Pygame di Coddy. Lezione 2 di 23.
Un suono appartiene a un momento: la moneta viene raccolta, la porta si apre, il nemico viene colpito. Nel tuo codice c'è già un punto per ogni momento: l'if che modifica il gioco quando succede. Riproduci il suono all'interno dello stesso if:
if player.colliderect(coin):
score += 1
coin_sound.play()
coin.x = random.randint(20, 444)L'if è vero per un solo fotogramma, perché la moneta si sposta nello stesso fotogramma. Così il suono parte una volta per ogni moneta.
Se riprodotto altrove, il suono perde il suo momento. Nel codice di disegno sotto if score > 0:, ripartirebbe a ogni fotogramma dopo la prima moneta: 60 volte al secondo, un ronzio continuo.
Sfida
FacileIl quadrato verde raccoglie le monete con i tasti freccia. Assegna un suono a ogni moneta:
- Prima del ciclo, carica
assets/sounds/coin.oggincoin_sound. - Riproducilo nell’
ifche raccoglie la moneta, una volta per moneta.
Provalo tu
import random
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Coins")
clock = pygame.time.Clock()
font = pygame.font.Font(None, 32)
player = pygame.Rect(220, 160, 40, 40)
coin = pygame.Rect(100, 100, 16, 16)
score = 0
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player.x -= 5
if keys[pygame.K_RIGHT]:
player.x += 5
if keys[pygame.K_UP]:
player.y -= 5
if keys[pygame.K_DOWN]:
player.y += 5
player.clamp_ip(screen.get_rect())
if player.colliderect(coin):
score += 1
coin.x = random.randint(20, 444)
coin.y = random.randint(50, 324)
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 210, 60), coin)
pygame.draw.rect(screen, (90, 200, 120), player)
score_text = font.render(f"Coins: {score}", True, (240, 240, 240))
screen.blit(score_text, (10, 10))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Suoni e sensazioni di gioco
1Effetti sonori
Caricare un suonoSuono al verificarsi di un eventoVolume del suonoSuoni e tasti tenuti premuti4Scuotimento dello schermo e flash all’impatto
Scuotimento dello schermoFlash all’impattoPausa all’impattoMantienilo discretoEsercitati da solo: Playground Pygame