Pygame: Primitive Shooter II 0.2 beta

Qualche tempo dopo la pubblicazione (e molto tempo dopo la sua creazione con pygame) ecco la nuova versione di Primitive Shooter II.

Buongiorno a tutti, con molta fatica, molto impegno e poco tempo a disposizione sono riuscito a migliorare un po' il mio modesto tentativo di creare uno shooter a scorrimento verticale con tutti i crismi; ecco perciò la nuova versione di Primitive Shooter II completamente programmata in python e pygame!

Fra le nuove caratteristiche del gioco troviamo:

  • Suoni con Stereo Panning.
  • Sfondo scorrevole a 3 livelli di parallasse che reagisce ai movimenti della navetta.
  • 7 tipi diversi di PowerUps.
  • Battaglia col boss ogni 5 livelli.
  • Supporto per le vite e schermata di Game Over.
  • 3 Tipi di Nemici: Normale, Shooter e Kamikaze.

Nelle prossime pagine analizzeremo in dettaglio le caratteristiche del gioco, per poi vedere il codice sorgente finale scritto in Python e Pygame.

Le Classi

Per prima cosa vediamo un po' che classi abbiamo a disposizione:

Classe Descrizione
Player La classe che rappresenta il giocatore ed i "kompanions"
Enemy Un nemico generico, con qualche modificatore in più rispetto alla vecchia versione
Bullet Un semplice proiettile
BigBullet Un Proiettile più grande (e presto pi potente)
PowerUp Un Generico PowerUp Raccoglibile
Star Una generica stella sullo sfondo
EnemyBullet Un proiettile lanciato dal nemico
Boss Un grosso, enorme boss arrabbiato

La maggior parte delle classi sono derivate direttamente da Sprite, ereditando così tutti i metodi che Pygame ci offre per velocizzare e facilitare il disegno delle immagini.

Primitive Shooter II fa ancora uso della Classe Vector Appositamente creata, potete trovarla in questo articolo.

Le Funzioni e i bachi conosciuti

Le funzioni sono davvero poche ma essenziali:

Funzione Descrizione
Shoot Sparo temporizzato, che ci permette di sparare senza dover massacrare la tastiera.
Level Gestisce la creazione dei livelli, le battaglie col boss e l'aumento di difficoltà
SoundInit Un posto separato dove tenere i suoni
Stereo_Pan Permette di modificare il volume delle casse destra e sinistra a seconda della posizione sullo schermo dell'evento collegato al suono

I bachi (bugs) trovati e non risolti finora sono:

  • Sotto Windows i suoni vengono riprodotti in ritardo
  • A volte uno dei due kompanions si blocca ad un lato dello schermo, seguendo solo i movimenti verticali della navetta
  • Le stelle sullo sfondo si "appiccicano" ai lati sinistro e superiore dello schermo.
  • Se finite addosso al boss, morirete e il boss sparirà. Il gioco potrebbe non proseguire.

Un po' di parole sul Gioco in sè...

Per quanto riguarda il lato "ludico" del gioco, troviamo per prima cosa una navetta che è in grado di sparare a 9 livelli di potenza diversi.

Successivamente troviamo 4 tipi di nemici + 1 boss:

Nemico Descrizione
Normale La classica "Carne da cannone": un nemico inerme che si muove a caso sullo schermo. Se ci finite addosso perderete una vita però...
Shooter Un nemico un po' più cattivo che vi lancerà addosso proiettili con lo scopo di colpirvi.
Kamikaze Un pazzo scatenato che cercherà in tutti i modi di venirvi addosso.
Shooter-Kamikaze Un pazzo veramente cattivo che compare di rado, vi spara addosso mentre cerca di centrarvi con la propria navetta
Boss Un grande, grosso, enorme e resistentissimo nemico un po' pigro, non fa altro che andare da destra a sinistra sparandovi addosso.

Inoltre troviamo ben 7 powerups diversi che permettono di facilitare la nostra battaglia:

PowerUp Descrizione
Potenza Aumenta di una unità la potenza di fuoco della vostra navetta
Velocità Cannone Aumenta il rateo di fuoco del vostro cannone
FullPower! Per 20 secondi vi di massima potenza e ritmo di fuoco, per un rapido sterminio.
Velocità Nave Aumenta la velocità della vostra nave, per movimenti più rapidi e repentini.
Kompanions Affianca alla vostra nave altre due piccole navette per aumentare la potenza di fuoco. Dura 60 secondi.
Shield Fa esattamente quello che dice, vi da uno scudo che vi protegge da tutto per 60 secondi
Assistance Un piccolo soccorso dalla base missilistica più vicina, un'orda di grossi proiettili si abbatte sul campo.

Per giocare è sufficiente una tastiera, si usano le freccette direzionali per muoversi e "Z" per sparare.

Il codice sorgente

14000 righe di codice? Non voglio arrivare a questi livelli per avere un rettangolo che spara...

Ecco qui di seguito il codice sorgente completo del gioco, per un totale di 822 righe:

I Suoni e le differenze

Il pacchetto di suoni che potete scaricare da questo link è stato creato con SFXR.

Il soundPack è necessario affinchè il gioco funzioni. Basta estrarne il contenuto nella stessa cartella dove si trovano Game.py e Vector.py

social