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