Construiește un joc Apple Catcher - Adăugând interacțiune

Aceasta este cea de-a doua tranșă din tutorialul nostru Corona SDK Apple Catcher. În tutorialul de astăzi, vom adăuga la interfața noastră prin crearea interacțiunii jocului. Citește mai departe!


Disponibile și în această serie:

  1. Construiți un joc Apple Catcher - crearea de interfețe
  2. Construiește un joc Apple Catcher - Adăugând interacțiune

Unde am plecat ...

Asigurați-vă că verificați partea 1 din seria să înțeleagă pe deplin și să se pregătească pentru acest tutorial.


Pasul 1: Ascultați butoanele Start

Această funcție adaugă ascultătorilor necesari la TitleView butoane.

 funcția startButtonListeners (acțiune) dacă (action == 'add') atunci titleBg: addEventListener ('tap', showGameView) creditsBtn: addEventListener 'tap', showCredits) sfârșitul final

Pasul 2: Afișați creditele

Ecranul creditelor este afișat atunci când utilizatorul apasă butonul aproximativ. A Atingeți ascultător se adaugă la vizualizarea creditelor pentru al elimina.

 (time = 300, x = 65, onComplete = total = function () creditsView: addEventListener ('tap', hideCredits) end) sfârșit

Pasul 3: Ascundeți creditele

Când ecranul de credite este atins, acesta va fi completat din scenă și eliminat.

 funcția ascundeCredități: apăsați (e) creditsBtn.isVisible = adevărat transition.to (crediteView, time = 300, y = display.contentHeight + creditsView.height, onComplete = function () creditsView: removeEventListener ('tap', hideCredits). ștergeți (creditsView) creditsView = nil end) sfârșit

Pasul 4: Afișare vizualizare joc

Cand start butonul este atins, vizualizarea titlului este completat și eliminat, dezvăluind vizualizarea jocului. Există multe părți implicate în această viziune, așa că le vom împărți în pașii următori.

 funcția showGameView: atingeți (e) transition.to (titleView, time = 300, x = -titleView.height, onComplete = function () startButtonListeners ('rmv') display.remove (titleView) titleView =

Pasul 5: Adăugați coșul

Acest cod plasează coșul pe scenă.

 -- Coșul de coș = display.newImage ('basket.png', 203, 240)

Pasul 6: Bara de informații

Apoi adăugăm imaginea barei de informații și creăm textul corespunzător care va afișa scorul curent și timpul rămas.

 -- Info Bar InfoBar = display.newImage ('infoBar.png', 280) scor = display.newText ('0', 65, -2, native.systemFontBold, 14) scor: setTextColor (0) timeLeft = 20 ', 175, -2, native.systemFontBold, 14) timeLeft: setTextColor (0)

Pasul 7: Adăugați fizică

Acum adăugăm fizica în coș și sunăm funcția care va adăuga ascultătorii jocului.

 -- Adăugați fizica physics.addBody (coș, 'static') - joc ascultători jocListeners ('adaugă')

Pasul 8: Ascultarea jocurilor

Această funcție adaugă ascultătorii necesari pentru a porni logica jocului.

 funcția gameListeners (acțiune) dacă (action == 'add') apoi timerSrc = timer.performWithDelay (500, actualizare, 0) coș: addEventListener ('collision', onCollision) cos: addEventListener ('touch', dragBasket) else timer. anulează (timerSrc) timerSrc = coșul fără goluri: removeEventListener ('collision', onCollision) coș: removeEventListener ('touch', dragBasket) fizics.stop

Pasul 9: Trageți coșul

Următorul cod utilizează fază pentru a trage coșul pe axa x folosind degetul jucatorului.

 -- Drag Basket funcția dragBasket (e) dacă (e.phase == 'a început') apoi lastX = e.x - basket.x elseif (e.phase == 'mutat') apoi basket.x = e.x -

Pasul 10: Adăugați Apple sau Stick

Funcția de actualizare este executată la fiecare jumătate de secundă. De fiecare dată când un număr aleator este generat și apoi testat pentru a vedea dacă un măr sau un stick va fi adăugat la etapă. Elementul este apoi adăugat la motorul fizicii și tras în jos automat prin gravitație.

 actualizare funcție (e) - Adăugați Apple sau Stick locale rx = math.floor (math.random () * display.contentWidth) local r = math.floor (math.random () * 4) - 0, 1, 2 , sau 3 (3 este stick) dacă (r == 3) apoi stick local = display.newImage ('stick.png', rx, -20) stick.name = 'stick' fizics.addBody = display.newImage ('apple.png', rx, -40) apple.name = 'apple' fizics.addBody (măr) sfârșitul

Pasul 11: Reduceți cronometrul

Aici crestem timer variabilă la fiecare o jumătate de secundă, atunci când este egală cu 2, o secundă este scăzută de la timp rămas textfield.

 -- Micșorați Timpul Timerului = ori + 1 dacă (ori == 2) apoi timeLeft.text = tostring (tonumber (timeLeft.text) - 1) ori = 0 sfârșit

Pasul 12: Verificați finalizarea cronometrului

Această parte verifică dacă timpul disponibil și-a sunat o alertă dacă este cazul.

 -- Verificați dacă timerul se termină dacă (timeLeft.text == '0') apoi sfârșitul de alertă ()

Pasul 13: Coliziunea Apple

Atunci când un măr atinge coșul, acesta este scos din scenă, scorul este actualizat și se afișează o animație afișând numărul de scor ridicat.

 funcția onCollision (e) dacă (e.other.name == 'apple') apoi - Eliminați display.remove Apple (e.other) - Afișați animația locală scoreAnim = display.newText ('+ 10', basket.x , cos.y-10, native.systemFontBold, 16) transition.to (scoreAnim, timp = 600, y = scoreAnim.y - 30, alfa = 0, onComplete = function) score.remove (scoreAnim) end) - Actualizare scor score.text = tostring (tonumber (score.text) + 10)

Pasul 14: Coliziune cu Stick

Aceasta folosește aceeași metodă ca ultimul pas, de această dată scăzând scorul.

 altfel (e.other.name == 'stick') apoi --Remove Stick display.remove (e.other) - Afișați animația locală scoreAnim = display.newText ('- 10', basket.x, basket.y- 10, native.systemFontBold, 16) transition.to (scoreAnim, timp = 600, y = scoreAnim.y - 30, alfa = 0, onComplete = function () Actualizați scorul score.text = tostring (tonumber (score.text) - 10) sfârșitul final

Pasul 15: Alertă

Această funcție va opri jocul și va afișa scorul final utilizând fundalul de avertizare și adăugarea acestuia.

 (alertView, time = 300, xScale = 0.5, yScale = 0.5) totalScore local = display.newText (scor.text, display.contentCenterX-11, display.contentCenterY + 24, native.systemFontBold, 21) totalScore: setTextColor (72, 34, 0) final

Pasul 16: Apelați funcția principală

Pentru a începe jocul, Principal funcția trebuie să fie numită. Cu codul de mai sus, vom face asta aici:

 Principal()

Pasul 17: Ecranul de încărcare

Fișierul Default.png este o imagine care va fi afișată chiar când porniți aplicația în timp ce iOS încarcă datele de bază pentru a afișa ecranul principal. Adăugați această imagine în folderul sursă al proiectului, acesta va fi adăugat automat de către compilatorul Corona.


Pasul 18: Pictogramă

Utilizând grafica pe care ați creat-o înainte de a crea acum o pictogramă frumoasă și bună. Dimensiunea pictogramei pentru pictograma non-retina iPhone este de 57x57px, dar versiunea retinei este 114x114px și magazinul iTunes necesită o versiune de 512x512px. Vă sugerăm să creați prima versiune 512x512 și apoi să scalați pentru alte dimensiuni.

Nu trebuie să aibă colțurile rotunjite sau strălucirea transparentă, iTunes și iPhone-ul vor face asta pentru tine.


Pasul 19: Testarea în simulator

E timpul să facem testul final. Deschideți Simulatorul Corona, navigați în dosarul proiectului, apoi faceți clic pe Deschidere. Dacă totul funcționează așa cum era de așteptat, sunteți gata pentru ultimul pas!


Pasul 20: Construiți

În simulatorul Corona, du-te la Fișier> Construiți și selectați dispozitivul țintă. Completați datele solicitate și faceți clic pe construi. Așteptați câteva secunde și aplicația dvs. va fi gata pentru testarea dispozitivului și / sau trimiterea pentru distribuire!


Concluzie

Experimentați cu rezultatul final și încercați să faceți propria dvs. versiune personalizată a jocului!

Sper că ți-a plăcut această serie de tutori și ți-a dat de ajutor. Mulțumesc că ați citit!

Cod