Construiți un joc Groundhog Whack - crearea de interfețe

În această serie de tutorial vom crea un joc Whack-a-Groundhog. Obiectivul jocului este de a atinge pe groundhogs înainte de a dispărea. Citește mai departe!


1. Intro Screen

Ecranul intro va permite utilizatorului să stabilească unele opțiuni sau să înceapă să joace jocul.


2. Ecran Opțiuni

Ecranul cu opțiuni va permite utilizatorului să pornească / dezactiveze muzica și să aleagă la ce viteză apar paragatele.


3. Ecran de joc

Ecranul de joc este locul în care are loc toată acțiunea. Groundhogs aleargă aleatoriu din găurile lor,
iar jucătorul încearcă să le "omoare" înainte de a se întoarce înăuntru. De asemenea, jucătorul poate accesa și ecranul de opțiuni de aici.


4. Proiect nou

Deschideți Simulatorul Corona și alegeți "Proiect nou".

Pe ecranul următor, alegeți următoarele setări:

Apasă pe "Următor →", apoi alegeți deschideți în editor. Aceasta va deschide "Main.lua"în editorul de text implicit.


5. Configurarea proiectului

Deschis "Config.lua"și ștergeți totul. Actualizați fișierul cu următoarele:

 aplicație = content = width = 320, height = 480, scale = "letterBox", fps = 30,

Aceasta stabilește lățimea implicită a proiectului, înălțimea, scara și FPS. ""letterbox"setarea de scară înseamnă că aplicația se va mări în ambele direcții cât mai uniform posibil. Dacă este necesar, jocul va afișa" Letter Boxed ", așa cum vedeți în unele filme DVD sau cu aplicații vechi pe un iPhone 5.


6. Ascunderea barei de stare

Nu vrem ca bara de stare să apară în aplicația noastră, așa că introduceți următoarele în "Main.lua„:

 display.setStatusBar (display.HiddenStatusBar);

7. Variabilele locale

Acestea sunt toate variabilele pe care le vom folosi în acest joc. Citiți comentariile pentru a înțelege ce este pentru fiecare.

 local allGroundHogs = Tabelul pentru a ține toate groundhogs groundHogXPositions = 240,410,280,145,429,80,208,366 groundHogYPositions = 259,259,209,184,166,118,91,99 local gameScreenGroup - grup care deține ecranul jocului introScreenGroup local - grup care deține intro ecran opțiuni localeScreenGroup - grup care deține opțiuni de ecran local isPlaying = false - dacă jucătorul a început jocul sau nu local groundHogTimer - cronometru care este utilizat pentru a genera groundhogs locale groundHogSpeed ​​= 1500

8. SetUpIntroScreen ()

setUpIntroScreen () funcția este utilizată pentru a configura primul ecran cu care va fi prezentat utilizatorul.

 funcția setUpIntroScreen () sfârșit

9. SetUpOptionsScreen ()

setUpOptionsScreen () funcția are grijă de configurarea ecranului cu opțiuni.

 funcția setUpOptionsScreen () sfârșit

10. SetUpGameScreen ()

setUpGameScreen () funcția stabilește ecranul de joc.

 funcția setUpGameScreen () sfârșit

11. GetRandomGroundHog ()

getRandomGroundHog () funcția selectează un paragat la întâmplare pentru a apărea într-unul dintre găuri.

 funcția getRandomGroundHog () sfârșit

12. GroundHogSpriteListener ()

Această funcție este utilizată pentru a spune când a încetat animația din teren.

 funcția groundHogSpriteListener (eveniment) sfârșit

13. GroundHogHit ()

groundHogHit (e) funcția este utilizată pentru a spune când jucătorul a lovit un Groundhog.

 funcția groundHogHit (e) sfârșitul

14. SoundComplete ()

Când muzica încetează să mai jucăm, folosim această funcție pentru ao porni din nou.

 funcția sunet complet () sfârșit

15. Configurarea jocului BackGround

În acest pas vom începe să configurați ecranul de joc. Introduceți următorul cod în interiorul setUpGameScreen () funcția pe care ați introdus-o în pasul de mai sus.

 gameScreenGroup = display.newGroup () joc localBackground = display.newImage ("background.png", true); gameScreenGroup: inserare (gameBackground)

În partea de jos a "main.lua", introduceți următoarele:

 setUpGameScreen ()

Dacă încercați acum, ar trebui să vedeți fundalul jocului.


16. Configurarea fișei de imagini

Groundhogs sunt animate folosind o foaie de sprite. Introduceți următoarele sub linie gameScreenGroup: inserare (gameBackground) pe care l-ați introdus în pasul de mai sus.

 opțiuni locale = width = 142, height = 91, numFrames = 7 local imageSheet = graphic.newImageSheet ("groundhogsheet.png", opțiuni)

Opțiuni este o tabelă care deține opțiunile pentru foaia de imagine. lăţime și înălţime sunt lățimea și înălțimea imaginilor din "groundhogsheet.png" și numFrames este egal cu numărul de imagini din .png


17. Date de secvență

Acum că avem pe noi imageSheet setup putem configura animațiile. Datele de animație (secvență) sunt păstrate într-o variabilă sequenceData. Introduceți următoarele coduri de mai sus.

 secvența localăData = name = "arată", start = 2, count = 3, time = 1000, loopCount = 0, loopDirection = "bounce"

Aici numim secvența "spectacol", start este "cadrul" imaginii pe care începe secvența și numara este numărul de cadre din secvență.

loopCount este de câte ori doriți ca succesiunea să fie redată. Zero înseamnă pentru totdeauna, și loopDirection este modul în care doriți ca succesiunea să fie redată. Opțiunea de oprire înseamnă juca înainte, apoi înapoi.


18. Spartanii de la GroundHog

Cu imageSheet și sequenceData setup, putem plasa parintii nostri si le animam. Introduceți codul de mai jos sequenceData ați introdus în pasul de mai sus.

 local tempGroundHog pentru i = 1, #groundHogXPoziții do tempGroundHog = display.newSprite (imageSheet, secvențăData) tempGroundHog.x = groundHogXPoziții [i] tempGroundHog.y = groundHogProcese [i] tempGroundHog: setSequence ("show") gameScreenGroup: table.insert (allGroundHogs, tempGroundHog) tempGroundHog: sfârșitul jocului ()

De fiecare dată prin bucle noi creăm un nou tempGroundHog Sprite, pune-o X un y poziții, setați secvența pentru a "arăta", introduceți-o în gameScreenGroup, și apoi introduceți-o în allGroundHogs masa.

Dacă încercați acum, ar trebui să vedeți toate animațiile de tip groundhog care se joacă. Arată cam greșit, și asta este ceva pe care îl vom rezolva în următoarea parte a acestei serii!


Concluzie

Aceasta aduce la capăt prima parte a acestei serii. În partea următoare vom termina animația Groundhog și vom completa logica jocului. Vă mulțumim pentru lectură și rămâi acordat!

Cod