XPong (2003) – Pong in C per GNU/Linux

Il classico pong, programmato in C durante i primi tempi dell’università. Gira sotto Linux e necessita della libreria grafica svgalib (X11). E’ possibile giocare da soli contro il computer, uno contro uno oppure in modo cooperativo due contro due; l’ultima modalità prevede infatti due giocatori (due a sinistra e due a destra) rispettivamente in attacco e difesa.

Nel codice sorgente ho iniziato a sperimentare con gli effetti di fade-in e fade-out, lettura dello stato del mouse e caricamento in memoria dei file .BMP.

La schermata principale, semplice e spartana.

maintitle

Tutti gli sprites sono caricati in memoria leggendo una particolare immagine bitmap che funge da “contenitore” per le animazioni, i testi, le barre, le palline e tutti gli altri elementi grafici:

xpong_hi

Alcuni elementi non sono mai utilizzati: avevo previsto dei power-up per la barra (ad esempio, il mitra per poter sparare all’avversario) e molti altri come velocità della palla, rallentamento del tempo, vita aggiuntiva e pallina trasparente ma non sono mai stati implementati, vuoi per mancanza di tempo, vuoi perchè alla fine mi sono dedicato ad altri progetti.

Durante il gioco la barra in alto mostra le “vite” a disposizione per ogni giocatore.

Ecco uno screenshot preso durante la partita:

xpong_hi

Un pò imbarazzante il codice sorgente :), la memoria allocata non viene mai liberata (memory leak), sono presenti magic numbers ovunque, alcuni valori critici sono hardcoded nel sorgente e i nomi delle variabili non sono molto significativi. In ogni caso ecco il link:

sorgenti + resource files

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.