Come imparare Pygame

Pygame è un insieme multipiattaforma di moduli Python progettati per la creazione di giochi. I moduli sono progettati per essere semplici, facili da usare e divertenti, una parte fondamentale dell'ideologia di Pygame. In questo post, ti mostrerò come usare Pygame e condividi suggerimenti e risorse per impararlo.

Questa guida presuppone che tu sappia già come codificare in Python. In caso contrario, prova il modo migliore per imparare Python, Learn Python, The Python Tutorial, Codecademy o Learn Python the Hard Way per iniziare.

Perché Pygame?

È semplice

Python è spesso considerato il miglior "primo linguaggio di programmazione" da apprendere ed è stato elogiato per la sua sintassi di facile apprendimento e per la curva di apprendimento graduale. Per questo motivo, molti nuovi programmatori iniziano imparando Python. 

Pygame estende Python, adotta la filosofia di Python e si propone di essere facile da usare. Inoltre, aspiranti nuovi sviluppatori di giochi senza esperienza di programmazione possono utilizzare Pygame, poiché possono rapidamente acquisire Python.

Ha una grande comunità

Pygame è disponibile dal 2000 e, da allora, una grande comunità si è costruita attorno ad esso. La comunità afferma che Pygame è stato scaricato milioni di volte e ha avuto milioni di visite al suo sito web ". Come risultato della grande comunità, i bug segnalati vengono risolti rapidamente, l'aiuto è facilmente disponibile e sono state aggiunte numerose funzionalità aggiuntive. Inoltre, la comunità garantisce che lo sviluppo di Pygame sia divertente; ad esempio, viene organizzata una competizione di gioco Python biennale per promuovere la piattaforma. La dimensione della community è ciò che separa Pygame dagli altri framework di gioco Python.

È Open Source

Il fatto che Pygame sia open source significa che i bug sono generalmente risolti molto velocemente dalla community. Significa anche che puoi estendere Pygame in base alle tue esigenze e magari anche restituire alla comunità. 

Pygame è scritto in C e dare uno sguardo al codice è un ottimo modo per capire meglio come funzionano Python e Pygame.

È altamente portatile

Pygame è altamente portatile, in quanto supporta Windows, Linux, Mac OS X, BeOS, FreeBSD, NetBSD, OpenBSD, BSD / OS, Solaris, IRIX e QNX. Oltre a queste piattaforme di calcolo, esiste un sottoinsieme Pygame per Android. Inoltre, Pygame non richiede OpenGL e può utilizzare DirectX, WinDIB, X11, Linux framebuffer e molte altre API per il rendering della grafica. Questo assicura che un numero maggiore di utenti possa giocare al tuo gioco.

Iniziare

Installazione

Prima di installare Pygame, assicurati di aver installato Python. Noterai che esistono due versioni di Python: Python 2 e Python 3. Personalmente, ti consiglio di usare Python 2 insieme a Pygame, poiché Python 2 è più diffuso e ci sono moduli Pygame che non supportano Python 3. Tuttavia, tu sarebbe ancora in grado di fare grandi giochi usando Python 3.

Dopo aver verificato che una versione di Python sia in esecuzione sul tuo computer, puoi raccogliere Pygame dal suo sito Web di download.

IDE

Oltre all'installazione dei moduli Pygame, ti consiglio di installare un IDE Python, che ti semplificherà la creazione e la compilazione dei giochi.

Si noti che un ambiente di sviluppo integrato, noto come IDLE, viene già fornito in bundle con Python. Tuttavia, IDLE è stato spesso criticato per problemi di usabilità e personalmente non posso raccomandarlo.

La mia preferenza personale è PyScripter, ma PyCharm, Wing IDE, Python Tools per Visual Studio e Netbeans sono tutte opzioni praticabili. Come sempre, la scelta di un IDE si riduce alle preferenze personali, quindi ti suggerisco di provarli tutti e vedere quale ti piace di più. 

risorse

Ecco alcune risorse che ti aiuteranno a iniziare con Pygame.

Università del Colorado

L'Università del Colorado offre un'ottima introduzione a Pygame. Le diapositive allegate garantiranno la conoscenza e l'utilizzo dei componenti chiave di Pygame. Dopo aver letto questo documento, dovresti capire i concetti chiave di Pygame.

Esercitazioni

Ci sono una moltitudine di tutorial disponibili che ti insegneranno Pygame in modo graduale. Ho scelto personalmente tre dei miei preferiti:

  • PyGame Tutorials - Introduzione semplice alla programmazione di giochi: copre le funzionalità di base di Pygame
  • PyGame Basics Tutorial: una serie in sette parti a partire dall'inizio, con una sezione particolarmente interessante su Musica ed effetti sonori
  • The Python Game Book: inizia con le basi, ma insegna concetti avanzati tra cui sprite, rilevamento di collisioni pixel-perfect e scorrimento

Serie video

Game Development in Python 3 Con Pygame è una serie di tutorial video disponibile come playlist di YouTube. La serie contiene 29 video, che iniziano con la visualizzazione di immagini e rendering di testo, e si sposta su per insegnare animazione e input dell'utente. Se preferisci le esercitazioni video alle esercitazioni basate su testo, non perdere questa serie. 

Libri

Se sei un principiante di Python e Pygame, ti consiglio di dare un'occhiata a Invent Your Own Games con Python. Questo libro inizia insegnandoti le basi di Python e supporta questa istruzione mostrandoti come creare semplici giochi da riga di comando. Dopo esserti assicurato di comprendere le basi di Python, il libro passa a insegnare a Pygame.

D'altra parte, se hai voglia di saltare direttamente in Pygame, Making Games with Python & Pygame è il libro che fa per te. Alla fine di questo libro, avrai creato 11 giochi e sarai pronto per andare da solo. 

Tutti questi libri sono gratuiti e sono online, quindi puoi iniziare subito!

Prossimi passi

Leggi la documentazione e Wiki

Dare un'occhiata alla documentazione è un passo importante verso la tua strada verso la maestria di Pygame. Qui troverai documenti, tutorial e riferimenti che coprono tutte le funzionalità di Pygame. La documentazione ti permetterà di acquisire conoscenza di tutti gli aspetti di Pygame, andando oltre ciò che avresti imparato attraverso le risorse precedenti.

Pygame Wiki ti aiuterà anche a rispondere a qualsiasi domanda tu possa avere sulla piattaforma, quindi non esitare a dare un'occhiata.

Guarda il codice

Guardare il codice ti aiuterà a capire in che modo diverse parti di Pygame interagiscono per creare un gioco completo. Inoltre, gli esempi ti mostreranno le migliori pratiche e potresti raccogliere alcuni trucchi lungo il percorso.

Guarda gli esempi ufficiali di Pygame per i dettagli su come usare i singoli moduli, o controlla i progetti pubblici di Pygame su GitHub per vedere un set completo di codice. 

Partecipa alla comunità

Pygame ha un canale IRC attivo e una mailing list. (La mailing list è anche disponibile in un'interfaccia simile a un forum.) I membri della comunità sono desiderosi di aiutare i principianti, quindi non aver paura di porre domande. 

Una volta diventato un esperto di Pygame, contribuisci alla comunità e aiuta gli altri. Insegnare agli altri ti aiuterà a imparare e solidificherà i concetti che già conosci. 

Crea il tuo gioco

Le risorse fornite sopra saranno più che sufficienti per acquisire una solida conoscenza di Pygame. Inoltre, se lavori attraverso le risorse, avrai realizzato più giochi. Tuttavia, ti esorto a creare la tua creazione; fare di più che costruire Tic-Tac-Toe o Concentrazione. Chiunque può seguire un tutorial per creare un gioco. Lascia fluire la tua creatività e metti alla prova le tue abilità costruendo un originale gioco.  

Suggerimenti per lo sviluppo

Usa gruppi

Pygame ha una caratteristica davvero potente conosciuta come gruppi, tramite la pygame.sprite.Group classe. Un gruppo è essenzialmente un contenitore per oggetti sprite.

 Ad esempio, se sto creando più proiettile sprite, posso aggiungerle a un gruppo chiamato proiettili:

bullet = pygame.sprite.Group () per i in range (10): bullets.add (Bullet ())

Lavorare con i gruppi è molto più veloce rispetto a lavorare con singoli sprite. Puoi semplicemente chiamare Group.update () per aggiornare tutti gli sprite all'interno di un gruppo, o Group.draw () per blittare il contenuto del Gruppo alla tua Superficie. Inoltre, i gruppi rendono più semplice il rilevamento delle collisioni, perché Pygame ha un metodo per controllare le collisioni tra due gruppi: pygame.sprite.groupcollide ()

Converti le tue superfici

Assicurarsi di convertire a Superficie ogni volta che ne crei uno chiamando il convertire() metodo. Questo metodo cambia il formato pixel di a Superficie per abbinare quello del display Superficie. Se questo metodo non viene chiamato, una conversione di pixel dovrà essere eseguita ogni volta che si bliterà qualcosa al proprio Superficie-un'operazione molto lenta.

 Ad esempio, invece di:

ballPicture = pygame.image.load ('ball.png')

 chiamata:

ballPicture = pygame.image.load ('ball.png'). convert ()

o se è necessario impostare l'alfa:

ballPicture = pygame.image.load ('ball.png'). convert_alpha ()

Nota che convert_alpha () non comporterà lo stesso aumento di prestazioni di convertire(), dal momento che il formato pixel non sarà una corrispondenza esatta per il Superficie finestra. Tuttavia, si traduce in una migliore velocità blit.

Aggiorna vs Flip

Tutti e due pygame.display.update () e pygame.display.flip () aggiorna il contenuto della finestra di gioco. Tuttavia, la semplice chiamata di questi metodi consente di aggiornare l'intero schermo, rallentando notevolmente la frequenza dei fotogrammi. Invece, si consideri solo l'aggiornamento di una parte specifica dello schermo (ovunque si debbano apportare modifiche) chiamando pygame.display.update ()e passando a rect che rappresenta l'area da aggiornare nel metodo. Facendo questo, vedrai un enorme miglioramento delle prestazioni.

Nota che, a volte, l'intero schermo dovrà essere aggiornato, e in questi casi entrambi i metodi funzioneranno correttamente. 

Moduli aggiuntivi

Ricordiamo che ho menzionato la grande e utile comunità di Pygame all'inizio del post. Ti consiglio di sfruttare questa community scaricando moduli aggiuntivi creati dai suoi membri. Questi moduli aiuteranno a facilitare il rapido sviluppo del tuo gioco e semplificano il processo di creazione del gioco.

 I miei preferiti personali includono:

  • Pyganim: semplifica l'aggiunta di animazioni sprite ai tuoi giochi
  • input.py: semplifica la gestione dei controlli in Pygame quando si utilizzano più metodi di controller
  • Utilità di gioco Python: una vasta raccolta di utilità Pygame

Puoi trovare altre librerie sul sito Web Pygame.

Giochi eseguibili

Se vuoi che il tuo gioco sia veramente multipiattaforma, devi considerare lo scenario in cui i tuoi utenti non hanno Python e Pygame installati sulle loro macchine.

Considera l'estensione py2exe per rendere eseguibili Windows e l'estensione py2app per creare applicazioni per Mac OS X. 

vetrina

Pygame non è stato usato molto spesso commercialmente, poiché Python non è noto per le sue capacità di sviluppo di giochi. Tuttavia, Pygame è stato utilizzato per creare molti giochi indipendenti di successo:

Galcon

Galcon è un gioco di strategia di azione galattica multi-giocatore e potrebbe essere il gioco più importante sviluppato con Pygame. Ha ricevuto un premio come Top 10 Game of the Year nel 2007 da GameTunnel, uno dei primi siti di recensioni di giochi indie.

Frets on Fire

Frets on Fire, un clone open source di Guitar Hero è stato creato in Pygame, come una voce per il concorso di sviluppo del gioco 2006 dell'Assemblea di Unreal Voodoo.

Ragazze pericolose del liceo nei guai!

Il pluripremiato gioco di ruolo Dangerous High School Girls in Trouble!, Dello sviluppatore indipendente Mousechief, è stato finalista in IndieCade 2008.

PyWeek

PyWeek è una sfida di programmazione di gioco biennale che accetta solo giochi creati in Python. Pertanto, molte presentazioni sono create usando Pygame. Un elenco dei vincitori precedenti è disponibile sul sito Web PyWeek.

Conclusione

In questo post, ti ho dato una introduzione allo sviluppo del gioco con Python e Pygame. Spero di aver avuto successo nel farti interessare a Pygame e nell'insegnarti di più a riguardo. Non esitate a porre le vostre domande qui o in vari forum Pygame. Ora sei pronto per iniziare il tuo viaggio nel mondo di Pygame. Buona fortuna!