Questa è la seconda puntata del nostro tutorial Corona SDK Sound Memory. Nel tutorial di oggi, aggiungeremo alla nostra interfaccia e all'interazione del gioco. Continuare a leggere!
Assicurati di controllare la prima parte della serie per capire e preparare questo tutorial.
Questa funzione aggiunge gli ascoltatori necessari a Vista del titolo pulsanti.
function startButtonListeners (action) if (action == 'add') then playBtn: addEventListener ('tap', showGameView) creditsBtn: addEventListener ('tap', showCredits) else playBtn: removeEventListener ('tap', showGameView) creditsBtn: removeEventListener ( 'tocca', mostraCrediti) fine
Il titoli di coda lo schermo viene mostrato quando l'utente tocca il Di pulsante, un ascoltatore tocco viene aggiunto alla vista crediti per rimuoverlo.
function showCredits: tap (e) playBtn.isVisible = false creditsBtn.isVisible = false creditsView = display.newImage ('credits.png', 0, display.contentHeight) lastY = title.y transition.to (title, time = 300 , y = display.contentHeight * 0.5 - title.height - 25) transition.to (creditsView, time = 300, y = display.contentHeight * 0.5 + creditsView.height, onComplete = function credits): addEventListener ('tap ', hideCredits) fine) fine
Quando il titoli di coda lo schermo viene toccato, verrà intercettato e rimosso.
function hideCredits: tap (e) transition.to (creditsView, time = 300, y = display.contentHeight, onComplete = function () creditsBtn.isVisible = true playBtn.isVisible = true creditsView: removeEventListener (visualizzazione 'tap', hideCredits) .remove (creditsView) creditsView = nil end) transition.to (title, time = 300, y = lastY); fine
Quando il Giocare Tocca il pulsante, la vista del titolo viene interpolata e rimossa rivelando la vista di gioco. Ci sono molte parti coinvolte in questa visualizzazione, quindi le suddivideremo nei passaggi successivi.
function showGameView: tap (e) transition.to (titleView, time = 300, x = -titleView.height, onComplete = function () startButtonListeners ('rmv') display.remove (titleView) titleView = nil end)
Questo codice posiziona le immagini dei pulsanti di gioco sul palco.
-- Aggiungi quadrati r.gfx = display.newImage ('red.png', 75, 155) g.gfx = display.newImage ('green.png', 165, 155) ye.gfx = display.newImage ('yellow.png ', 75, 245) b.gfx = display.newImage (' blue.png ', 165, 245) r.gfx.name =' r 'g.gfx.name =' g 'ye.gfx.name =' ye 'b.gfx.name =' b '
Le seguenti righe aggiungeranno il Istruzioni messaggio, mostralo per due secondi e poi svanisce.
-- Istruzioni Messaggio local ins = display.newImage ('message.png', 61, 373) transition.from (ins, time = 200, alpha = 0.1, onComplete = function () timer.performWithDelay (2000, function () transition. a (ins, time = 200, alpha = 0.1, onComplete = function () display.remove (ins) ins = nil gameTimer = timer.performWithDelay (500, playLevel, #currentLevel) end) end) end)
Questo pulsante viene utilizzato per verificare l'input dell'utente e assicurarsi che sia uguale al livello dei suoni. È invisibile per impostazione predefinita.
-- Check Button check = display.newImage ('checkBtn.png', 135, 406) check.isVisible = false
Questa funzione aggiunge gli ascoltatori necessari per avviare la logica di gioco.
function gameListeners (action) if (action == 'add') then r.gfx: addEventListener ('tap', onTap) g.gfx: addEventListener ('tap', onTap) ye.gfx: addEventListener ('tap', onTap ) b.gfx: addEventListener ('tap', onTap) check: addEventListener ('tap', checkInput) else r.gfx: removeEventListener ('tap', onTap) g.gfx: removeEventListener ('tap', onTap) ye. gfx: removeEventListener ('tap', onTap) b.gfx: removeEventListener ('tap', onTap) check: removeEventListener ('tap', checkInput) gameTimer = nil end end
Questa funzione legge il livello attuale variabile per determinare quale livello giocare. Utilizza anche una transizione per puntare visivamente al pulsante associato al suono. Quando viene eseguita la sequenza di livelli, dai un'occhiata il pulsante diventa visibile.
function playLevel () if (times <= #currentLevel) then transition.from(currentLevel[times].gfx, time = 200, alpha = 0.1) audio.play(currentLevel[times].s) times = times + 1 end if(times == #currentLevel+1) then check.isVisible = true gameListeners('add') end end
Premendo i pulsanti al centro chiamerà questa funzione. Suonerà un suono e registrerà il suo valore nel userInput tavolo. Questa tabella verrà utilizzata nella funzione successiva per confrontare i suoni.
funzione onTap (e) if (e.target.name == 'r') then table.insert (userInput, r.gfx) audio.play (rs) transition.from (e.target, time = 200, alpha = 0.1) elseif (e.target.name == 'g') then table.insert (userInput, g.gfx) audio.play (gs) transition.from (e.target, time = 200, alpha = 0.1 ) elseif (e.target.name == 'ye') then table.insert (userInput, ye.gfx) audio.play (ye.s) transition.from (e.target, time = 200, alpha = 0.1 ) elseif (e.target.name == 'b') then table.insert (userInput, b.gfx) audio.play (bs) transition.from (e.target, time = 200, alpha = 0.1) end fine
Questa funzione confronta i nomi dei pulsanti premuti con la tabella dei livelli e chiama un avviso con il messaggio corrispondente.
function checkInput (e) check.isVisible = false per i = 1, #currentLevel do if (userInput [i] .name == currentLevel [i] .gfx.name) quindi correct = correct + 1 end end if (correct == #currentLevel) quindi alert ('win') else alert ('lose') end end
Il Mettere in guardia la funzione crea una vista di avviso, la anima e termina la partita.
function alert (action) gameListeners ('rmv') if (action == 'lose') then alertView = display.newImage ('lose.png', 110, 218) else alertView = display.newImage ('win.png', 110, 218) end transition.from (alertView, time = 200, alpha = 0.1) end
Per iniziare il gioco, il Principale la funzione deve essere chiamata. Lo faremo qui con il codice sopra riportato.
Principale()
Il Default.png file è un'immagine che verrà visualizzata proprio quando si avvia l'applicazione mentre iOS carica i dati di base per mostrare la schermata principale. Aggiungi questa immagine alla cartella sorgente del tuo progetto; sarà automaticamente aggiunto dal complice Corona.
Usando la grafica creata in precedenza, ora puoi creare una bella icona. La dimensione dell'icona per un iPhone senza display retina è 57x57px, ma la versione retina è 114x114px e lo store iTunes richiede una versione 512x512px. Raccomando di creare prima la versione 512x512 e ridimensionarla per le altre dimensioni.
iTunes e l'iPhone creeranno gli angoli arrotondati e il bagliore trasparente.
È tempo di fare il test finale. Apri il simulatore Corona, vai alla cartella del tuo progetto e fai clic su apri. Se tutto funziona come previsto, sei pronto per il passaggio finale!
Nel Corona Simulator vai a File e Build e seleziona il tuo dispositivo di destinazione. Compila i dati richiesti e clicca costruire. Attendi qualche secondo e la tua app sarà pronta per il test del dispositivo e / o l'invio per la distribuzione!
In questa serie abbiamo appreso il caricamento del suono, la riproduzione e il confronto dei tavoli. Queste sono abilità che possono essere molto utili in un ampio numero di giochi.
Puoi sperimentare il risultato finale e provare a creare la tua versione personalizzata del gioco!
Spero ti sia piaciuta questa serie di tutorial e l'ho trovata utile. Grazie per aver letto!