This article has been localized into Italian by the community.
In this article series, we're building a complete Snake game from scratch. It makes sense to start with the Introduction and then work your way through the articles one by one, to get the full understanding.
If you want to get the complete source code for the game at once, to get started modifying and learning from it right now, consider downloading all our samples!
Introduzione
Un breve riassunto di questo articolo introduttivo: implementeremo il classico gioco Snake in WPF e il risultato finale sarà simile a questo:
La creazione di giochi è spesso la ragione per cui molte persone, soprattutto giovani, sono attratte dall'apprendimento della programmazione. Ma la domanda di solito è: come iniziare e di cosa ho bisogno? Bene, hai bisogno di un linguaggio di programmazione, come C #, C ++ o uno qualsiasi degli altri linguaggi popolari, e se sei fluente nella tua lingua preferita, non hai davvero bisogno di nient'altro: basta iniziare dal basso aggiungendo pixel al schermo e ad un certo punto, potresti avere un gioco funzionante.
Tuttavia, la maggior parte delle persone preferirebbe un po' di aiuto con le cose di basso livello. Perché aggiungere manualmente i pixel allo schermo se esiste una libreria o un framework che può farlo per te? così puoi concentrarti sulla costruzione di un gioco divertente! Ci sono molti framework che ti aiuteranno a farlo, e in realtà, uno di questi è il framework WPF .
Ora concesso, WPF non è la scelta più ovvia quando si desidera creare giochi: è sicuramente un framework che si concentra principalmente sulla creazione di interfacce utente per applicazioni orientate al business. Tuttavia, ci sono molti elementi nel framework WPF che puoi usare per creare un gioco, e forse altrettanto importante: ottieni tutti i meccanismi per disegnare e controllare una finestra in Windows.
Quindi, se stai cercando di creare un gioco semplice, WPF potrebbe effettivamente essere una buona scelta. Almeno sarà di grande aiuto per tutti gli aspetti più elementari, come la creazione di una finestra, il disegno di un'area semplice per il gioco, ecc. Se si desidera aggiungere elementi come grafica 3D avanzata e oggetti in rapido movimento, potrebbe essere necessario più aiuto da un altro libreria / framework, ma andrà benissimo per un semplice gioco - per esempio, un classico gioco Snake !
SnakeWPF
Come prova del concetto, ho deciso di creare una versione basata su WPF del gioco Snake estremamente classico. Userà una normale finestra WPF come area di gioco, così come controlli / forme WPF regolari per creare il gameplay reale. Il motivo per cui ho scelto Snake è perché è abbastanza facile da implementare (non c'è molta logica da codificare) e perché può essere implementato usando semplici figure geometriche come quadrati e cerchi, che possono essere utilizzate molto facilmente con il framework WPF. Ma anche perché è ancora un gioco davvero divertente, nonostante la sua natura semplicistica!
Se non conosci il gioco Snake, posso solo supporre che non hai mai posseduto un cellulare Nokia alla fine degli anni '90 / primi anni 2000. La prima versione di Snake è stata scritta e dimostrata molti anni prima, ma è diventato un grande successo quando Nokia ha deciso di includerne la versione su tutti i suoi cellulari.
Il gameplay è tanto semplice quanto divertente: muovi un serpente virtuale in una direzione (sinistra, destra, su o giù) nella caccia al cibo (a volte una mela). Quando il tuo serpente colpisce la mela, il serpente si allunga e una nuova mela appare sullo schermo. Se colpisci i muri o la tua coda di serpente, il gioco termina e devi ricominciare tutto da capo. Più mele mangi, più alto è il punteggio che ottieni ma più sarà difficile non toccarti la coda.
Ci sono variazioni nel gameplay - ad esempio, la velocità con cui si muove il tuo serpente spesso aumenta ogni volta che mangi una mela, rendendola sempre più dura, ma non tutte le implementazioni di Snake lo fanno. Un'altra variante sono i muri: alcune implementazioni ti permetteranno di attraversare il muro e uscire dalla parte opposta, mentre altre implementazioni avranno la fine del gioco non appena colpisci il muro.
Nel nostro SnakeWPF, i muri sono duri (il serpente muore se li colpisce) e la velocità aumenterà (fino a un certo punto) esponenzialmente per ogni mela che mangi.
Sommario
Nei prossimi articoli implementeremo una bella versione del classico gioco Snake usando il framework WPF. Inizieremo con lo sfondo nel prossimo articolo e alla fine, avremo il nostro primo gioco completamente basato su WPF.
Si noti che, sebbene si tratti di un'esercitazione WPF, avremo bisogno di un po 'più di codice C # del normale, per implementare la logica del gioco, ecc. Cercherò di spiegarne la maggior parte mentre procediamo, ma nel caso abbiate bisogno di un po' più di conoscenza su C #, non dimenticare che nella nostra rete è disponibile un tutorial completo su C # !