Creați un joc de puzzle bazat pe fizică - adăugați o interacțiune

Aceasta este a doua tranșă în tutorialul nostru de puzzle pentru fizica SDK Corona. În tutorialul de astăzi, vom adăuga la interfața noastră și interacțiunea noastră de joc. Citește mai departe!


Disponibile și în această serie:

  1. Creați un joc de puzzle bazat pe fizică - crearea de interfețe
  2. Creați un joc de puzzle bazat pe fizică - adăugați o interacțiune

Unde am plecat ...

Asigurați-vă că ați citit prima parte a tutorialului pentru a înțelege pe deplin și pentru a vă pregăti pentru acest tutorial.


1. Începeți ascultarea butoanelor

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

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

2. Afișați creditele

Ecranul de credite este afișat atunci când utilizatorul interceptează despre buton. A Atingeți ascultător se adaugă la vizualizarea creditelor pentru al elimina.

 funcția showCredități: apăsați (e) playBtn.isVisible = false crediteBtn.isVisible = false crediteView = display.newImage ('credits.png', -130, display.contentHeight-140) transition.to (creditsView, time = = 65, onComplete = funcție () creditsView: addEventListener ('tap', hideCredits) end) sfârșit

3. Ascundeți creditele

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

 funcția ascundeCredite: tap (e) playBtn.isVisible = credite realeBtn.isVisible = adevărat transition.to (creditsView, time = 300, y = display.contentHeight + creditsView.height, onComplete = function () creditsView: , ascundeCredități) display.remove (creditsView) creditsView = nil end) sfârșit

4. Afișați vizualizarea jocului

Cand Joaca butonul este atins, vizualizarea titlului este completat și eliminat pentru a afișa vizualizarea jocului. Există o mulțime de părți implicate în această viziune, astfel încât le vom împărți în etapa următoare.

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

5. Mesaj de instrucțiuni

Următoarele linii adaugă mesajul cu instrucțiunile. Îl vom arăta timp de două secunde și apoi vom dispărea.

 -- Instrucțiuni Mesaj local ins = display.newImage ('ins.png', 32, 182) transition.from (ins, time = 200, alpha = 0.1, onComplete = function () timer.performWithDelay (2000, transition). (ins, time = 200, alfa = 0.1, onComplete = functie () display.remove (ins) ins = nil end) end) lvlImg = display.newImage )

6. Etajul

Acest cod creează un dreptunghi în partea inferioară a treptei pentru a fi folosit ca o podea.

 -- Etajul etajului interior = display.newRect (0, 320, 480, 1)

7. Cutii de nivel

Această parte se ocupă de crearea nivelului. Începe prin crearea cutiilor în scenă. Vom afla mai multe despre această funcție în următorii pași.

 -- Cutii de nivel addBox ('g', 60, 272) addBox ('s', 148, 284) addBox ('s', 148, 176) addBox ('n', 297, 272) addBox ('n', 297, 224) addBox ('

8. Ball

Acest cod adaugă mingea la nivel.

 -- Minge minge = display.newImage ('ball.png', 234, 138) ball.name = 'minge'

9. Fizica

Aici adăugăm fizica pe podea și pe minge.

 -- Adăugați Physics.addBody (etaj, static) fizics.addBody (minge, 'dinamic', rază = 12) sfârșit

10. Adaugă funcția caseta

Următoarea funcție utilizează trei parametri pentru a crea un obiect casetă. Puteți specifica tipul de casetă din primul parametru și poziția acestuia în următoarele două. Cu această metodă puteți crea nivele complexe utilizând doar câteva rânduri de cod. Se va adăuga fizica în cutia nouă, precum și un ascultător de robinet.

 funcția addBox (tip, X, Y) local b = display.newImage (tastați ... 'Box.png', X, Y) fizics.addBody (b, addEventListener ('tap', removeBox) elseif (tip == 'g') apoi b: addEventListener ('collision', onCollision)

11. Scoateți caseta

Această funcție elimină caseta țintă când este utilizată.

 funcția removeBox (e) display.remove (e.target) sfârșit

12. Coliziuni

Vom folosi acest cod pentru a vedea dacă mingea se ciocnește cu caseta cu goluri și apela o alertă dacă este adevărată.

 (e) dacă (e.other.name == 'ball'), apoi afișați () sfârșitul

13. Alertă

Funcția de alertă creează o vizualizare de alertă, o animă și termină jocul.

 ('rmv') if (action == 'lose') atunci alertView = display.newImage ('lose.png', 110, 218) altar alertView = display.newImage 110, 218) final transition.from (alertView, time = 200, alpha = 0.1)

14. Apelați funcția principală

Pentru a începe jocul, Principal funcția trebuie să fie numită. Vom face asta cu următorul cod.

 Principal()

15. Ecran de încărcare

default.png fișierul este o imagine care va fi afișată chiar atunci când porniți aplicația. Acesta va fi adăugat automat de compilatorul Corona când îl adăugați în folderul sursă al proiectului.


16. Icon

Utilizând grafica pe care ați creat-o înainte, puteți crea o pictogramă frumoasă. Dimensiunea pictogramei pentru pictograma non-retină iPhone este 57x57px, dar versiunea retinei este 114x114px și magazinul iTunes necesită a 512x512px versiune. Vă sugerez să creați 512x512 prima versiune și scalarea în jos pentru celelalte dimensiuni.

Nu trebuie să aibă colțuri rotunjite sau o strălucire transparentă. iTunes și iPhone vor face asta pentru tine.


17. Testarea în simulator

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


18. Construiți

În Simulatorul Corona mergeți la Fișier> Construiți și selectați dispozitivul țintă. Completați datele solicitate și dați clic pe construi. Așteptați câteva secunde și aplicația dvs. va fi pregătită pentru testarea dispozitivului și trimiterea pentru distribuire!


Concluzie

În această serie, am aflat despre comportamentul fizicii, ascultă ascultătorii și coliziunile. Acestea sunt abilități care pot fi utile într-un număr mare de jocuri.

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 și ți-a dat de ajutor. Mulțumesc că ați citit!

Cod