In questa serie di tutorial, creeremo ex novo un gioco Brick Breaker utilizzando Corona SDK. L'obiettivo di questo gioco è di controllare una pagaia simile a un pong per colpire una palla contro una pila di mattoni fino a quando non si rompono tutti.
Lo scopo di questo gioco è quello di usare una pagaia per colpire una palla in una pila di mattoni fino a quando tutti i mattoni sono rotte senza permettere alla palla di perdere la pagaia e volare via dallo schermo. Se ha successo, l'utente passerà ad un nuovo livello, altrimenti il gioco finirà.
La prima cosa che dobbiamo fare è selezionare la piattaforma in cui vogliamo far funzionare la nostra app, in questo modo potremo scegliere la dimensione per le immagini che useremo.
La piattaforma iOS ha queste caratteristiche:
Perché Android è una piattaforma aperta, ci sono molti diversi dispositivi e risoluzioni. Alcune delle caratteristiche dello schermo più comuni sono:
In questo tutorial ci concentreremo sulla piattaforma iOS con il design grafico, in particolare lo sviluppo per la distribuzione su un iPhone / iPod touch, ma il codice presentato qui dovrebbe applicarsi anche allo sviluppo Android con il Corona SDK.
Verrà visualizzata un'interfaccia dall'aspetto colorato, che comprende più forme, pulsanti, bitmap e altro ancora.
Le risorse grafiche dell'interfaccia necessarie per questo tutorial sono disponibili nel download allegato.
A seconda del dispositivo selezionato, potrebbe essere necessario esportare la grafica nel ppi consigliato, è possibile farlo nell'editor di immagini preferito.
Ho usato il Regola dimensioni? funzione nell'app Anteprima su Mac OS X.
Ricordarsi di assegnare alle immagini un nome descrittivo e di salvarle nella cartella del progetto.
È tempo di scrivere la nostra applicazione!
Apri il tuo editor Lua preferito (qualsiasi editor di testo funzionerà, ma non tutti gli editor forniscono l'evidenziazione della sintassi Lua) e preparati a scrivere la tua fantastica app. Ricordarsi di salvare il file come main.lua nella cartella del tuo progetto.
Struttureremo il nostro codice come se fosse una classe. Se conosci ActionScript o Java, dovresti trovare la struttura familiare.
Necesary Classes Variable and Constants Declare Funzione contructor (funzione principale) metodi di classe (altre funzioni) chiamata Main function
display.setStatusBar (display.HiddenStatusBar)
Questo codice nasconde la barra di stato. La barra di stato è la barra in cima allo schermo del dispositivo che mostra l'ora, il segnale e altri indicatori.
Faremo uso del potente motore Box2D integrato in Corona, utilizzare questo codice per includerlo nella tua app:
--Fisica Fisica locale del motore = richiede 'fisica' physics.start () physics.setGravity (0, 0) - Imposta la gravità su 0 poiché non ne avremo bisogno
Queste sono le variabili e le costanti di base che useremo, leggere i commenti nel codice per saperne di più su di loro.
locale BRICK_W = 41 --brick width local BRICK_H = 21 --brick height local OFFSET = 23 --un offset usato per centrare i mattoni locali W_LEN = 8 --la lunghezza dei livelli, solo 8 mattoni orizzontali dovrebbero essere creati sul palco locale SCORE_CONST = 100 - la quantità da aggiungere al punteggio quando un mattone viene colpito punteggio locale = 0 - memorizza il punteggio corrente mattoni locali = display.newGroup () - include tutti i mattoni di livello xSpeed locale = 5 locale ySpeed = -5 xDir locale = 1 - direzione x yDir locale = 1 gameEvent locale = "- memorizza gli eventi di gioco (vinci, perdi, finito) local currentLevel = 1
Questa è la schermata principale dell'applicazione, sarà la prima visualizzazione interattiva a comparire nel nostro gioco. Queste variabili memorizzano lo sfondo e i componenti della schermata del menu.
background locale = display.newImage ('bg.png') menu localeScreen locale mScreen locale startB locale aboutB
Prestare particolare attenzione alla linea con display.newImage ( 'bg.png')
. Questo è responsabile della visualizzazione dell'immagine di sfondo iniziale sullo schermo.
Lo schermo about mostrerà i crediti, l'anno e il copyright del gioco. Questa variabile verrà utilizzata per memorizzare un riferimento alla vista:
aboutScreen locale
Questa è la schermata di gioco, verrà creata quando Inizio il pulsante è TAPpato.
Variabili per memorizzare la schermata di gioco:
palla locale locale locale in mattoni
Variabili locali che memorizzano i campi di testo punteggio / livello e valori numerici punteggio / livello:
punteggio localeTesto locale localeNum livello localeTesto livello localeNum
Questa schermata apparirà quando il gioco è stato deciso. Il messaggio dirà al giocatore che vincono o perdono.
La schermata di avviso è memorizzata dalle seguenti variabili:
alert localeAvviso locale localeBg locale locale titleTF locale msgTF
Tutti i nostri livelli verranno archiviati in tabelle (la versione Lua di un array).
Questa è essenzialmente una tabella che contiene una tabella. Potresti dichiararlo in una singola riga, ma, con la giusta formattazione, la spaziatura ti permette di vedere effettivamente la forma che assumeranno i livelli:
livelli locali = livelli [1] = 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0, 0,0,1,1,0,0,0, 0,0,0,1,1,0,0,0, 0,1,1,1,1,1,1,0 , 0,1,1,1,1,1,1,0, 0,0,0,1,1,0,0,0, 0,0,0,1,1,0, 0,0, 0,0,0,0,0,0,0,0 livelli [2] = 0,0,0,0,0,0,0,0, 0 , 0,0,1,1,0,0,0, 0,0,1,0,0,1,0,0, 0,0,0,0,0,1,0,0 , 0,0,0,0,1,0,0,0, 0,0,0,1,0,0,0,0, 0,0,1,0,0,0 , 0,0, 0,0,1,1,1,1,0,0 livelli [3] = 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,1,1,0,0,0, 0,1,0,0,0,0,1, 0, 0,1,1,1,1,1,1,0, 0,1,0,1,1,0,1,0, 0,0,0,0,0, 0,0,0, 0,0,0,1,1,0,0,0, 0,0,0,0,0,0,0,0 livelli [4] = 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1 , 1, 1,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,1, 1,0,0,0,0 , 0,0,1, 1,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,1, 1,1,1 , 1,1,1,1,1,
Nelle tabelle multidimensionali sopra, il 1 di rappresentano lo spazio nel palcoscenico in cui verrà posizionato un mattone, e il 0 di sono solo uno spazio vuoto. In seguito, i numeri verranno letti da una funzione che posizionerà un mattone nella vista di gioco. Abbiamo aggiunto quattro sopra, ma puoi aggiungerne quanti ne vuoi!
Ora hai visto l'interfaccia e la configurazione di base del nostro gioco. Restate sintonizzati per la seconda parte di questa serie, in cui aggiungeremo interattività all'interfaccia e al rilevamento delle collisioni tra la nostra grafica di gioco.