Un piccolo serpente ci conduce attraverso le principali caratteristiche del Windows Phone 7
Introduzione Core UI & Design Conclusione Premi Discussioni
Marcosroom.it Didatticando

Introduzione

Questo articolo parla dello sviluppo di un'applicazione per la nuova piattaforma Windows Phone 7: Snake Mobile.
L'idea del gioco è solo un'occasione per dimostrare che in una semplice applicazione come Snake Mobile, troviamo molti dei concetti di base di sviluppo per la piattaforma Windows Phone 7.

Io non sono un designer, infatti il gioco non è visivamente attraente, ma questa applicazione non è stata sviluppata con l'obiettivo di essere distribuita al pubblico, bensì per inserire all'interno di un unico videogioco, molti dei concetti fondamentali della programmazione. Per raggiungere questo obiettivo, le soluzioni adottate sono a volte quelle meno convenienti o meno usate rispetto ad altre applicazioni, questo per creare uno scenario in cui fosse necessario utilizzare una particolare tecnica di programmazione.
Un esempio di ciò è l'Inversione di Controllo: utilizzare l'IoC in uno scenario come quello che verrà descritto più avanti è follia pura, ma ho deciso di utilizzare comunque questa design pattern, per cogliere l'occasione di spiegarla per rendere la sua comprensione più semplice, e anche per creare un contenitore che lavora sulla piattaforma Windows Phone 7, dal momento che in applicazioni più complesse questo può essere utile.

La scelta di sviluppare un gioco presuppone di creare un'applicazione complessa in cui sono combinati diversi elementi come la grafica, l'audio, i dati, etc... Questo articolo è piuttosto lungo e può essere noioso da leggere tutto, ma il mio obiettivo era quello di essere il più completo possibile nell'esposizione e, soprattutto, non volevo dare nulla per scontato, infatti, in alcune situazioni particolari, ho anche aggiunto alcuni link di approfondimento. Ho anche inserito, alla fine di questo articolo, un elenco contenente tutti i componenti indipendenti del progetto che si possono estrapolare e utilizzare liberamente in una vostra applicazione.

Vi ricordo che questo articolo può essere ulteriormente migliorato: se trovate qualche errore che non ho notato o pensate ad un miglioramento che io possa fare, per favore fatemelo sapere, in modo che io possa aggiornare l'articolo a beneficio di altre persone che successivamente potranno godere dei miglioramenti.

Siete pronti? Cominciamo!

Basi di gioco

L'idea di base del gioco, è che abbiamo una Grid, che sarà riempita con alcune celle.
Memorizzeremo le istanze della classe Cell in un array bidimensionale; l'indice è utilizzato per ottenere la cella dala corrispondente posizione sulla griglia. Esempio: un muro localizzato su (2, 5) sarà memorizzato nell'array utilizzando l'indice [2, 5].

Per muovere il serpente, abbiamo un oggetto Point, che rappresenta la direzione del serpente, e un Timer che lo fa muovere (in verità, aggiorna la proprietà CellType delle celle; vedremo dopo cos'è). I serpenti nemici funzionano allo stesso modo.

Il controller di movimento genera gli eventi Up, Down, Left e Right, i quali solo gestiti dell'oggetto Level che cambia la direzione.

Ad ogni scatto del timer principale, c'è una chiamata ad un metodo che controlla se gli obiettivi sono stati completati; se restituisce true, il livello è completato, altrimenti, non accade nulla.

Tuttavia, quello che ho appena esposto, sarà analizzato modo più approfondito nella prosecuzione dell'articolo.

 

Condividi
Indietro Tutti i webmaster che volessero segnalare, non copiare,
il contenuto di questa pagina sul proprio sito, possono farlo liberamente.
E' gradito un preavviso tramite mail all'autore e l'iserimento,
nella pagina di citazione, di un link verso la pagina corrente.
© Copyright    Marco's Room
Avanti
Download SnakeMobile

Scaricato 115 volte

Introduzione