Aceasta este cea de-a doua tranșă în tutorialul nostru pentru jocul de hochei pe aer SDK Corona. În tutorialul de astăzi, vom adăuga la interfața noastră și vom codifica interacțiunea jocului. Citește mai departe!
Asigurați-vă că verificați partea 1 a seriei pentru a înțelege pe deplin și pentru a vă pregăti pentru acest tutorial.
Această funcție adaugă ascultătorilor necesari la TitleView butoane.
funcția startButtonListeners (acțiune) dacă (action == 'add') atunci playBtn: addEventListener ('tap', showGameView) creditsBtn: addEventListener 'tap', showCredits) sfârșitul final
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.
(e) playBtn.isVisible = false crediteBtn.isVisible = credite falseView = display.newImage ('credits.png', 0, display.contentHeight) lastY = titluBg.y transition.to (titleBg, time = 300 , y = (display.contentHeight * 0.5) - (titleBg.height + 50)) transition.to (crediteView, time = 300, y = (display.contentHeight * 0.5) + 35, onComplete = addEventListener ('atingeți', ascundeCredități) end) sfârșit
Când ecranul de credite este atins, acesta va fi completat din scenă și eliminat.
funcția ascundeCredite: atingeți (e) transition.to (crediteView, time = 300, y = display.contentHeight + 25, onComplete = function () creditsBtn.isVisible = true playBtn.isVisible = credite realeView: removeEventListener ) display.remove (creditsView) crediteView = nil end) transition.to (titleBg, time = 300, y = lastY); Sfârșit
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 =
Aici vom crea 6 linii care vor fi folosite ca pereți de masă.
-- Pereți stânga = display.newLine (-1, display.contentHeight * 0.5, -1, display.contentHeight * 2) dreapta = display.newLine (display.contentWidth + 1, display.contentHeight * 0.5, display.contentWidth + .contentHeight * 2) topLeft = display.newLine (0, -1, display.contentWidth - 120, -1) topRight = display.newLine (display.contentWidth, -1, display.contentWidth * 1.6, -1) bottomLeft = .newLine (0, display.contentHeight, display.contentWidth - 120, display.contentHeight) bottomRight = display.newLine (display.contentWidth, display.contentHeight, display.contentWidth * 1.6, display.contentHeight)
Acest cod plasează fundalul jocului în etapă.
-- Joc Bg gameBg = display.newImage ('gameBg.png')
Adăugați paleta de jucători cu următorul cod:
-- Playerul jucătorului = display.newImage ('paddle1.png', display.contentCenterX-25, display.contentHeight-100)
Pilula inamicului este creată de această linie:
-- Inamicul inamicului = display.newImage ('paddle2.png', display.contentCenterX-25, 10)
Apoi adăugăm scorurile TextFields pentru a le folosi mai târziu.
-- Scoruri enemyScore = display.newText ('0', 289, 206, 'Courier-Bold', 20) enemyScore: setTextColor (227, 2, 2) playerScore = Bold ', 20) jucatorScore: setTextColor (227, 2, 2)
Acesta este pucul, va apărea în centrul scenei.
-- Puck puck = display.newImage ('puck.png', display.contentCenterX-20, display.contentCenterY-20)
În cele din urmă, adăugăm fizica elementelor grafice. De asemenea, setăm o proprietate Puck la false pentru a preveni rotația sa.
-- Set Physics.addBody (stânga, statică) fizics.addBody (dreapta, 'static') fizics.addBody (topLeft, 'static') fizics.addBody (bottomLeft, static) fizics.addBody ') fizics.addBody (bottomRight,' static ') fizics.addBody (puck,' dynamic ', radius = 20, bounce = 0.4) puck.isFixedRotation = 25) fizics.addBody (inamic, 'static', radius = 25) sfârșitul jocului ('adaugă') sfârșit
Următoarea funcție se ocupă de tragerea Playerului.
Folosește o metodă diferită de tutorialele anterioare, deoarece vrem să tragem obiectul fără a-și pierde interacțiunile fizice. Puteți citi mai multe despre acest lucru pe site-ul web Corona.
funcția dragBody (eveniment) gameUI.dragBody (eveniment, maxForce = 20000, frecvența = 10, dampingRatio = 0.2, center = true
Această funcție adaugă ascultătorii necesari pentru a porni logica jocului.
(= action == 'add') apoi player: addEventListener ('touch', dragBody) Runtime: addEventListener (' removeEventListener ('atinge', dragBody) Durata de executie: removeEventListener ('enterFrame', update) timer.cancel (timerSrc) timerSrc = sfarsitul nilului
Un cronometru este folosit pentru a muta inamicul, ceea ce va crea o întârziere care să permită dușmanului să rateze lovirea pucului.
funcția moveEnemy (e) - Deplasare Enemy if (puck.y < display.contentHeight * 0.5) then transition.to(enemy, time = 300, x = puck.x) end end
Funcția Actualizare rulează fiecare cadru.
Această parte a codului verifică dacă pucul a părăsit scena prin spațiul în care nu au fost adăugați pereți. Dacă este adevărat, acesta mărește câmpul de text corespunzător scorului.
actualizare funcție () - scorul dacă (puck.y> display.contentHeight) apoi enemyScore.text = tostring (tonumber (enemyScore.text) + 1) elseif (puck.y < -5) then playerScore.text = tostring(tonumber(playerScore.text) + 1) end
Aceste linii reinițializează poziția puckului atunci când părăsește scena și joacă un sunet gol.
-- Resetați poziția Puck dacă (puck.y> display.contentHeight sau puck.y < -5) then puck.x = display.contentCenterX puck.y = display.contentCenterY puck.isAwake = false audio.play(bell) end
Aici împiedicăm să coboare jucătorul în partea inamic a scenei.
-- Păstrați cu zbaturi pe partea jucătorului dacă (player.y < display.contentWidth - 60) then player.y = display.contentWidth - 60 end end
Pentru a începe jocul, Principal funcția trebuie să fie numită. Cu codul de mai sus, vom face asta aici:
Principal()
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 compilatorul Corona.
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.
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!
Î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!
Experimentați cu rezultatul final și încercați să faceți versiunea personalizată a jocului!
Sper că ți-a plăcut această serie de tutori și ți se pare util. Mulțumesc că ați citit!