Ricreare Flappy Bird in Pyton con Raspberry e PigameZero | Wireframe #29

Condividi questo articolo:


Dal numero 29 della rivista Wireframe dello scorso anno: imparate a creare la vostra versione del semplice ma coinvolgente Flappy Bird a scorrimento laterale. Rik Cross di Raspberry Pi vi mostra come.

Flappy Bird è stato rilasciato dal programmatore Dong Nguyen nel 2013, e ha fatto uso di una semplice meccanica di gioco per creare un gioco coinvolgente. Toccando lo schermo si fornisce un ‘ascensore’ al personaggio principale, che viene utilizzato strategicamente per navigare attraverso una serie di tubi in movimento. Viene segnato un punto per ogni tubo passato con successo. L’idea si è rivelata così coinvolgente che Nguyen alla fine si è pentito della sua creazione e l’ha rimossa dagli app store di Google e Apple. In questo articolo, vi mostrerò come ricreare questo semplice ma lungo gioco, utilizzando Python e Pygame Zero.

Il movimento del giocatore è molto simile a quello di un platform standard: cade verso il fondo dello schermo sotto la gravità. Per saperne di più sulla creazione di questo tipo di movimento, si veda l’articolo, la fisica del salto in stile Super Mario in Wireframe #7. La pressione di un pulsante (nel nostro caso, la barra spaziatrice) dà al giocatore una certa spinta verso l’alto impostando la sua velocità a un valore negativo (cioè verso l’alto) maggiore del valore della gravità che agisce verso il basso. Ho adattato e utilizzato due diverse immagini per lo sprite (realizzate da Imaginary Perception e disponibili su opengameart.org), in modo che sembri che stia sbattendo le ali per generare la spinta verso l’alto.

 

I set di tubi sono disposti equidistanti orizzontalmente e si muovono lentamente verso il giocatore in ogni fotogramma del gioco. Questi tubi sono memorizzati come due liste di rettangoli, top_pipes e bottom_pipes, in modo che il giocatore possa tentare di volare attraverso gli spazi vuoti tra i tubi superiori e inferiori. Una volta che un tubo nella lista top_pipes raggiunge il lato sinistro dello schermo oltre la posizione del giocatore, il punteggio viene incrementato e i tubi superiori e inferiori corrispondenti vengono rimossi dalle rispettive liste. Un nuovo set di pipe viene creato sul bordo destro dello schermo, creando una sfida continua per il giocatore. La posizione y dello spazio tra ogni nuova coppia di pipe creata viene decisa in modo casuale (tra il limite minimo e massimo), che viene utilizzata per calcolare la posizione e l’altezza delle nuove pipe.

Il gioco si ferma e appare un messaggio “Game over” se il giocatore si scontra con un tubo o con il terreno. Il rilevamento della collisione nel gioco utilizza il metodo player.colliderect(), che controlla se due rettangoli si sovrappongono. Poiché lo sprite del giocatore non è esattamente rettangolare, significa che il rilevamento delle collisioni non è pixel-perfetto, e si potrebbero apportare miglioramenti utilizzando un approccio diverso. Cambiando i valori di GRAVITY, PIPE_GAP, PIPE_SPEED, e player.flap_velocity attraverso un processo di prova ed errore, si otterrà un gioco che ha la giusta quantità di frustrazione! Si potrebbero anche cambiare questi valori man mano che il punteggio del giocatore aumenta, per aggiungere un altro livello di sfida.

 

 

Ecco il codice di Rik,  un omaggio a Flappy Bird che gira in Python. Per farlo funzionare sul vostro sistema, dovrete prima installare Pygame Zero. E per scaricare il codice completo, andate qui:

download the full code, go here.

Tutti i numeri di Wireframe disponibili gratuitamente per il download:

complete back catalogue as free PDF downloads

L’ultimo numero di Wireframe è disponibile in versione cartacea online presso il negozio Raspberry Pi Press, con i vecchi numeri cartacei fortemente scontati. Potete trovare Wireframe anche nelle edicole locali, ma dovremmo tutti rimanere a casa il più possibile in questo momento, quindi perché non prendere la vostra copia online e risparmiarvi il viaggio?

Assicuratevi di seguire Wireframe su Twitter e Facebook per aggiornamenti e offerte e omaggi esclusivi. E iscrivetevi al sito Wireframe per risparmiare fino al 49% rispetto ai prezzi in edicola!


Per ulteriori informazioni visita il sito: immagi.net

Condividi questo articolo: