CONCLUSIONE
COSA ABBIAMO IMPARATO
Come avevo affermato nell'Introduzione l'obiettivo del mio tutorial era la conoscenza di pygame attraverso lo
studio di molti esempi pratici dell'uso delle sue funzionalità, supponendo che il lettore avesse solo delle conoscenze
basilari di Python. Ho quindi cercato di spiegare, strada facendo, i concetti più importanti del funzionamento di un'interfaccia
grafica e della programmazione ad oggetti.
Il tutorial non può chiaramente essere esaustivo (altrimenti le sue dimensioni dovrebbero come minimo raddoppiare!), ma
giunti a questo punto penso di avervi dato un'idea del funzionamento generale di pygame e che siate giunti ad un punto tale
da poter continuare i vostri esperimenti e le vostre ricerche da soli.
- Per quanto riguarda pygame, abbiamo imparato il significato e l'uso di moltissime funzioni della
libreria. Non ho esaminato tutti i sottomoduli di pygame, ed all'interno di ogni sottomodulo ho parlato solo delle
funzioni più importanti. Penso che a questo punto, se siete interessati, possiate approfondire voi la conoscenza di pygame
direttamente consultando la documentazione dei singoli moduli. Come vi ho detto l'Inglese non deve essere un ostacolo per una
persona appassionata di informatica, anche perchè nella documentazione tecnica la sintassi è di solito abbastanza semplice,
una volta imparati alcuni termini tecnici le cose dovrebbero essere abbastanza facili.
- Per quanto riguarda l'interfaccia grafica, abbiamo parlato di eventi, di oggetti che rispondono ad essi,
di posizionamento degli oggetti sullo schermo, ecc. Questi concetti sono importantissimi perchè sono la base di ogni
interfaccia grafica: se imparerete ad usare altre librerie o altri linguaggi di programmazione vedrete che essi possono essere
realizzati diversamente, ci saranno modi diversi di ottenere queste cose, ma i concetti principali rimangono gli stessi:
organizzare un'area grafica in modo che essa risponda ad eventi provocati dall'utente o dal sistema operativo.
- Infine abbiamo capito alcuni concetti di base della Programmazione Orientata agli Oggetti (OOP). Vi ho
mostrato come si usa un oggetto predefinito (attributi e metodi) ed, in minima parte, come modificarlo per adattarlo ai nostri
scopi.
Per andare avanti e produrre risultati più soddisfacenti penso che sia importante da parte vostra imparare compiutamente
la OOP (molti tutorial sui videogiochi la danno per scontata ...) ed applicare tecniche più evolute come la suddivisione del
programma in files separati (già i nostri ultimi programmi erano dei "mattoni" difficili da leggere e modificare). Questo
porebbe essere l'argomento di un prossimo Tutorial ...
CONTINUARE ALIENS
Il nostro gioco Aliens ha raggiunto una veste grafica abbastanza accattivante, tuttavia soffre ancora di alcuni problemi,
soprattutto per quanto riguarda la giocabilità: il gioco è troppo monotono e ripetitivo ed il giocatore non deve far altro
che andare a destra e sinistra premendo la barra spaziatrice. Vi do alcuni suggerimenti per migliorarlo,
Ulteriori miglioramenti grafici:
- Nella cartella Sprites/SpaceArt sono presenti cinque immagini "laserGreenShot_00.png" ...
"laserGreenShot_04.png" che potete usare per creare una piccola animazione ad ogni sparo della vostra astronave
- Nella stessa cartella trovate anche due variazioni nel disegno della nostra astronave: "playerLeft.png" e
"playerRight.png": potete usarle per cambiare l'immagine della nostra astronave in base alla sua direzione. Basta
aggiungere, nelle righe che controllano il movimento dell'astronave, il cambio del suo attributo
image
in base al tasto premuto in quel momento (considerando anche il caso che nessun tasto sia premuto).
- Infine potete implementare una scritta finale "Game over" scegliendo uno dei file nella cartella
Sprites ed una delle funzioni che abbiamo visto nella Lezione 11
per farla lampeggiare, ruotare o ingrandire.
Per quanto riguarda la giocabilità:
- Potete notare che nella cartella sono presenti alieni di vari colori. Potete creare tre tipi diversi di nave aliena
(ognuna di un colore diverso), assegnando ad esse le velocità di 1, 2, 3 pixel/ciclo (usando quello che abbiamo imparato
nella Lezione 18. Questo porterebbe senz'altro più varietà nel gioco.
- Potete implementare tre vite della vostra astronve. Questo potrebbe essere il vostro "compito finale" in quanto
richiede di ristrutturare tutto il ciclo principale, inserendolo dentro un ciclo esterno che dovrebbe ripetersi
tre volte, reinizializzando ogni volta la situazione del gioco. Se ci riuscite, vi segnalo che nella solita cartella
Sprites/SpaceArt avete anche un'immagine dell'astronave in miniatura, che può essere utilizzata
nella parte delle info per segnalare il numero di vite.
Buon divertimento!!!
Fine della lezione (e del tutorial)