Lag et lydbasert minne spill - spilllogikk

Dette er den andre avgiften i Corona SDK Sound Memory-opplæringen. I dagens veiledning legger vi til grensesnittet og spillets interaksjon. Les videre!


Også tilgjengelig i denne serien:

  1. Lag et lydbasert minne spill - grensesnittoppretting
  2. Lag et lydbasert minne spill - spilllogikk

Hvor vi forlot ...

Vær så snill å sjekke del en av seriene for å forstå og forberede deg på denne opplæringen.


1. Startknappslyttere

Denne funksjonen legger til de nødvendige lytterne til Tittelvisning knapper.

 funksjon startButtonListeners (action) hvis (action == 'add') så spillBtn: addEventListener ('tap', showGameView) kreditterBtn: addEventListener ('tap', showCredit) annet playBtn: removeEventListener ('tap', showGameView) creditsBtn: removeEventListener "trykk", showCredits) slutten

2. Vis kreditt

De studiepoeng skjermen vises når brukeren tapper Handle om knapp, en trykklytter legges til kredittvisningen for å fjerne den.

 funksjonsvisningKreditter: trykk (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 () kreditterVis: addEventListener ', hideCredits) end) slutt

3. Skjul Credits

Når studiepoeng skjermen er tappet, den blir tweened ut av scenen og fjernet.

 funksjon hideCredits: trykk (e) overgang.to (kreditterVis, time = 300, y = display.contentHeight, onComplete = funksjon () kreditterBtn.isVisible = true playBtn.isVisible = true creditsView: removeEventListener ('tap', hideCredits) .remove (creditsView) creditsView = null end) transition.to (title, time = 300, y = lastY); slutt

4. Vis spillvisning

Når Spille knappen er tappet, tittelvisningen er tweened og fjernet avslørende spillvisningen. Det er mange deler involvert i denne visningen, så vi deler dem opp i de neste trinnene.

 funksjon showGameView: trykk (e) transition.to (titleView, time = 300, x = -titleView.height, onComplete = funksjon () startButtonListeners ('rmv') display.remove (titleView) titleView = null end)

5. Legg til firkantede knapper

Denne koden plasserer spillknappens bilder i scenen.

 -- Legg til firkanter 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 '

6. Instruksjonsmelding

Følgende linjer vil legge til bruksanvisning melding, vis den i to sekunder og fade den ut.

 -- Instruksjoner Melding lokale ins = display.newImage ('message.png', 61, 373) transition.from (ins, time = 200, alpha = 0.1, onComplete = funksjon () timer.performWithDelay (2000, funksjon () overgang. til (ins, time = 200, alpha = 0,1, onComplete = funksjon () display.remove (ins) ins = nil gameTimer = timer.performWithDelay (500, playLevel, #currentLevel) ende) ende) ende)

7. Kontroller knappen

Denne knappen brukes til å teste brukerinngangene og sørge for at den er lik lydnivået. Den er usynlig som standard.

 -- Kontroller knappkontroll = display.newImage ('checkBtn.png', 135, 406) check.isVisible = false

8. Spillelyttere

Denne funksjonen legger til de nødvendige lytterne for å starte spilllogikken.

 funksjon spilllistere (handling) hvis (handling == 'legg til') deretter r.gfx: addEventListener ('tap', onTap) g.gfx: addEventListener ('tap', onTap) ye.gfx: addEventListener ) b.gfx: addEventListener ('tap', onTap) sjekk: addEventListener ('tap', checkInput) ellers r.gfx: removeEventListener ('tap', onTap) g.gfx: removeEventListener ('tap', onTap) gfx: removeEventListener ('tap', onTap) b.gfx: removeEventListener ('tap', onTap) sjekk: removeEventListener ('tap', checkInput) gameTimer = null ende

9. Spill Nivå Funksjon

Denne funksjonen leser nåværende nivå variabel for å bestemme hvilket nivå som skal spilles. Den bruker også en overgang for å visuelt peke på knappen som er knyttet til lyden. Når nivåsekvensen er ferdig, vil kryss av knappen blir synlig.

 funksjon playLevel () hvis (ganger <= #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

10. Registrer brukerinngang

Hvis du trykker på knappene i midten, ringes denne funksjonen. Det vil spille en lyd og registrere dens verdi i userinput bord. Denne tabellen vil bli brukt i neste funksjon for å sammenligne lydene.

 funksjon onTap (e) hvis (e.target.name == 'r') deretter table.insert (userInput, r.gfx) audio.play (rs) transition.from (e.target, time = 200, alfa = 0,1) elseif (e.target.name == 'g') deretter table.insert (userInput, g.gfx) audio.play (gs) transition.from (e.target, time = 200, alfa = 0,1 ) elseif (e.target.name == 'ye') deretter table.insert (userInput, ye.gfx) audio.play (ye.s) transition.from (e.target, time = 200, alfa = 0,1 ) elseif (e.target.name == 'b') deretter table.insert (userInput, b.gfx) audio.play (bs) transition.from (e.target, time = 200, alfa = 0,1) slutten slutt

11. Kontroller inngang

Denne funksjonen sammenligner navnene på knappene som trykkes på nivåbordet, og kaller et varsel med tilhørende melding.

 funksjon checkInput (e) check.isVisible = false for i = 1, #currentLevel gjør hvis (userInput [i] .name == currentLevel [i] .gfx.name) deretter korrigere = korrigere + 1 ende ende hvis (riktig == #currentLevel) så varsel ("seier") annet varsling ("tap") slutten

12. Alert

De Varsling funksjonen oppretter en varselvisning, animerer den og slutter spillet.

 funksjonalarm (handling) gameListeners ('rmv') hvis (handling == 'tap') så alertView = display.newImage ('lose.png', 110, 218) annet alertView = display.newImage ('win.png' 110, 218) endeovergang.fra (alarmView, tid = 200, alfa = 0,1) ende

13. Ring hovedfunksjon

For å starte spillet, er Hoved funksjonen må kalles. Vi gjør det her med den ovennevnte koden på plass.

 Hoved()

14. Laster skjerm

De Default.png fil er et bilde som vises riktig når du starter programmet mens iOS laster de grunnleggende dataene for å vise hovedskjermbildet. Legg til dette bildet i prosjektkildemappen; Det blir automatisk lagt til av Corona compliler.


15. Ikon

Ved å bruke grafikken du opprettet før, kan du nå lage et fint ikon. Ikonstørrelsen for en iPhone uten retina-skjerm er 57x57px, men retina-versjonen er 114x114px og iTunes-butikken krever en 512x512px-versjon. Jeg anbefaler å lage 512x512 versjonen først og skalere ned for de andre størrelsene.

iTunes og iPhone vil skape de avrundede hjørnene og gjennomsiktig blending.


16. Testing i simulator

Det er på tide å gjøre den endelige testen. Åpne Corona Simulator, bla til prosjektmappen din, og klikk Åpne. Hvis alt fungerer som forventet, er du klar for det siste trinnet!


17. Bygg

I Corona Simulator gå til Fil og Bygg og velg målrettingsenheten. Fyll ut de nødvendige dataene og klikk bygge. Vent noen få sekunder, og appen din vil være klar for testing av enheten og / eller innsending for distribusjon!


Konklusjon

I denne serien har vi lært om lydopplasting, spilling og tabell sammenligning. Dette er ferdigheter som kan være svært nyttige i et stort antall spill.

Du kan eksperimentere med det endelige resultatet, og prøve å lage din egendefinerte versjon av spillet!

Jeg håper du likte denne opplæringsserien og fant den nyttig. Takk for at du leser!