Rivivi un classico. Ecco una breve realizzazione del gioco Pong di Atari in Python con l’aiuto di PyGame.

Rivivi un classico. Ecco una breve realizzazione del gioco Pong di Atari in Python con l’aiuto di PyGame.

Novembre 12, 2023 0 Di Ruggero Grando

Qualche suono non fa male e rende il gioco un po’ più interessante.

L’aggiunta di una qualche sonorità è abbastanza semplice, nel caso di esempio, ho aggiunto il rumore del tocco del paddle di destra e di sinistra con la palla e una breve colonna sonora in caso di vittoria.

# Inizializza Pygame
pygame.init()

#Gestione delle sonorità
#suono del paddle di sinistra al tocco della palla 
hit_sound_paddle_left = pygame.mixer.Sound('Pong.mp3')
#suono del paddle di destra al tocco della palla
hit_sound_paddle_right = pygame.mixer.Sound('Ping.mp3')
#suono di vittoria
hit_victory = pygame.mixer.Sound('vict1.mp3')

Dopo l’istruzione pygame.init() ho aggiunto le righe relative al paddle di sinistra, quello di destra e al breve stacco musicale in caso di vittoria. Il codice non fa altro che caricare, per esempio sulla variabile hit_sound_paddle_left il suono “Pong.mp3” che ho scaricato da un qualsiasi sito che distribuisce file musicali gratuiti.

A questo punto ho modificato il codice seguente in tal modo.

 # Collisione della palla con i paddle
    if ball_pos.colliderect(left_paddle_pos) or ball_pos.colliderect(right_paddle_pos):
        ball_x_speed = -ball_x_speed
        if ball_pos.colliderect(left_paddle_pos):
            hit_sound_paddle_left.play()
        else:
            hit_sound_paddle_right.play()    

Come si vede, ho gestito con un if la verifica del tocco della palla con il paddle di destra o sinistra e quindi “suonato” con l’istruzione play() la variabile hit_sound_paddle_right o la variabile hit_sound_paddle_left.

Invece, per avviare la musica di vittoria in caso di vincita ho modificato il codice come descritto di seguito.

#Funzione per il messaggio di vittoria
def draw_victory_message(winner):
    victory_color = (255, 0, 0)  # Colore rosso per il messaggio di vittoria
    if winner == "left":
        message = "Ha vinto il giocatore 1!"
        hit_victory.play()
    else:
        message = "Ha vinto il giocatore 2!"
        hit_victory.play()

Sotto al messaggio “Ha vinto il giocatore 1!” o “Ha vinto il giocatore 2!” ho “suonato” la variabile hit_victory con l’istruzione play(), nulla di più semplice e intuitivo.

Pagina Successiva | Pagina Precedente

No votes yet.
Please wait...

Pagine: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18