Posts Tagged ‘Game’
Questo progettino in XNA che vi presentiamo è un semplice “simulatore di volo spaziale” dove il giocatore dovrà comandare un’astronave e distruggere tutti i nemici che incontra in mezzo al percorso.
Partiamo dal presupposto che la nave in realtà non va mai avanti (ovvero non modifica mai la sua posizione Z): poco più in basso del modello dell’astronave è infatti posizionato un modello simil-sferico (molto grande) che ruota in continuazione attorno al suo asse X, creando così un effetto di movimento in avanti molto suggestivo ed efficace.

Le astronavi si muovono verso il giocatore con un moto rettilineo uniforme, e viene fatto in continuazione un calcolo delle intersezione tra:
• bounding box di nemici e astronave (metodo TestCollisionBetweenShips)
• bounding box di nemici e i missili che lanciamo (metodo TestCollision)
A seconda del fatto che colpiamo o veniamo colpiti dai nemici, possiamo guadagnare o perdere punti (e vite). I punti appaiono in alto a sinistra in un HUD molto semplice. I nemici non sparano missili, però se “oltrepassano” l’astronave del giocatore, si perdono comunque dei punti… e siccome lo scopo del gioco è quello di arrivare alla fine del percorso (ovvero dopo una trentina di nemici) facendo il maggior numero di punti possibile, ovviamente bisogna cercare di eliminare più nemici possibili.
Dopo aver colpito 10 nemici, è possibile usare lo scudo (una sfera che ruota attorno all’astronave) premendo il tasto Z, che vi proteggerà dai nemici che vi vengono incontro.
Aggiungere nemici è molto semplice: c’è un metodo setOstacoli() chiamato da Update, che si occupa di specificare per ogni nemico:
• il modello da caricare, con eventuale texture
• eventuale ridimensionamento
• vettore di posizione iniziale da cui deve partire (X e Y in un intervallo ben determinato, mentre la Z quasi sempre a -4000)
• velocity vector
• quanti punti deve assegnare al giocatore, nel caso venisse eliminato
• quando deve apparire (scrivendolo in millisecondi)
• un’eventuale flag (is_vita) se la nave in avvicinamento non è un nemico ma una vita in più per il giocatore
Sono tutti attributi definiti nella classe GameObject, che si occupa di gestire tutti i modelli 3D.
thanks to: DeviantArt per i modelli 3D
Enjoy!
Dopo lunghissima attesa, eccomi qua a pubblicare il mio primo post (la personalizzazione del tema non si poteva chiamare tale).
Quello che vi presento è il fantastico gioco in Java che in SEI mesi di lavoro ha fruttato a me e Dave tanti esaurimenti, momenti di panico ma soprattutto risate. Ovviamente parlo di Thief Time. Vi metto il codice sorgente in allegato e il video di presentazione. Dentro la cartella troverete un file play.bat per avviare il gioco con i settaggi giusti per la JVM.
Se proprio vi interessa ci troverete dentro un player custom per file .MOD e .XM, un bel lavoro di intelligenza artificiale (io quei maledetti non riesco proprio a ucciderli
), primi esperimenti di grafica in real time (fuoco, acqua…), una meravigliosa animazione di un personaggio che probabilmente in molti conoscete (vi dico solo HADOOOOOOKEN!!!!!), una gif che ancora non so come cazzo Dave abbia fatto a mettere (credetemi quando ha i suoi lampi di genio non si capisce cosa faccia) e tante altre piccole chicche che vi lasciamo scoprire da soli
! Il gioco è stato approvato dalla Scateni Entertainments.
Fateci sapere cosa ne pensate!!!
…ed ecco il codice…
Ciao a tutti
This is a work in Java done for an exam.
I’ve used the wonderful GTGE graphic engine.

Hopefully this game would be a good point to start gaming in Java ![]()
Enjoy it!
Here goes the full source code:
Barone Sardo source