Î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!
Ecranul intro va permite utilizatorului să stabilească unele opțiuni sau să înceapă să joace jocul.
Ecranul cu opțiuni va permite utilizatorului să pornească / dezactiveze muzica și să aleagă la ce viteză apar paragatele.
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.
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.
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.
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);
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
setUpIntroScreen ()
funcția este utilizată pentru a configura primul ecran cu care va fi prezentat utilizatorul.
funcția setUpIntroScreen () sfârșit
setUpOptionsScreen ()
funcția are grijă de configurarea ecranului cu opțiuni.
funcția setUpOptionsScreen () sfârșit
setUpGameScreen ()
funcția stabilește ecranul de joc.
funcția setUpGameScreen () sfârșit
getRandomGroundHog ()
funcția selectează un paragat la întâmplare pentru a apărea într-unul dintre găuri.
funcția getRandomGroundHog () sfârșit
Această funcție este utilizată pentru a spune când a încetat animația din teren.
funcția groundHogSpriteListener (eveniment) sfârșit
groundHogHit (e)
funcția este utilizată pentru a spune când jucătorul a lovit un Groundhog.
funcția groundHogHit (e) sfârșitul
Când muzica încetează să mai jucăm, folosim această funcție pentru ao porni din nou.
funcția sunet complet () sfârșit
Î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.
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
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.
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!
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!