Crea un gioco Brick Breaker con Corona SDK Application Setup

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.


Passaggio 1: Panoramica dell'applicazione

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à.


Passaggio 2: dispositivo di destinazione

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:

  • iPad: 1024x768px, 132 ppi
  • iPhone / iPod Touch: 320x480px, 163 ppi
  • iPhone 4: 960x640px, 326 ppi

Perché Android è una piattaforma aperta, ci sono molti diversi dispositivi e risoluzioni. Alcune delle caratteristiche dello schermo più comuni sono:

  • Google Nexus One: 480x800px, 254 ppi
  • Motorola Droid X: 854x480px, 228 ppi
  • HTC Evo: 480x800px, 217 ppi

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.


Passaggio 3: interfaccia

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.


Passaggio 4: Esporta grafica

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.


Passaggio 5: Main.lua

È 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.


Passaggio 6: Struttura del codice

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

Passaggio 7: Nascondi barra di stato

 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.


Passaggio 8: caricamento del motore fisico

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

Passaggio 9: Variabili e costanti del gioco

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

Passaggio 10: Schermata del menu

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.


Passaggio 11: Informazioni 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

Passaggio 12: schermata di gioco

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

Passaggio 13: Punteggio e livello del testo

Variabili locali che memorizzano i campi di testo punteggio / livello e valori numerici punteggio / livello:

 punteggio localeTesto locale localeNum livello localeTesto livello localeNum

Passaggio 14: schermata di avviso

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

Step 15: Livelli

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!


La prossima volta?

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.