Create en Space Invaders spillet i Corona: Prosjekt Setup 
 42 
 Del 
 9 
 Del 
 
 Dette Cyber mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av 
 Dette innlegget er en del av en serie som heter Opprett en Space Invaders spillet i Corona.Create et Space Invaders spillet i Corona. Implementering GameplayWhat du skal lage 
 I denne tredelte serien, Jeg skal vise deg hvordan du kan lage et spill inspirert av den populære sytti spill, Space Invaders. Underveis vil du lære om Corona scene administrasjonsfunksjonalitet, tidtakere, flytte et tegn, den innebygde fysikkmotor, og hvordan du bruker moduler for å etterligne klasser i Lua programmeringsspråk. 
 
 1. Nytt prosjekt 
 
 Åpne Corona Simulator, klikker du Nytt prosjekt, og konfigurere prosjektet som vist nedenfor. 
 Velg en plassering for å lagre prosjektet og klikk på OK. Dette vil opprette en mappe med et antall ikoner og tre filer som er viktige for oss, main.lua, config.lua, og build.settings. 
 Vi vil ta en titt på hver fil i de neste trinnene. 
 
 2. Bygg Innstillinger 
 
 build.settings filen er ansvarlig for oppbygging tids egenskapene til prosjektet. 
 Åpne fil, fjerne innholdet, og fylle den med følgende konfigurasjon. 
 innstillinger = {orientering = {default = "portrett", støttet = {"portrett"},}} 
 I build .settings, setter vi standard orientering og begrenser anvendelsen 
 å bare støtte et stående format. Du kan finne ut hvilke andre innstillinger du kan inkludere i 
 build.settings ved å utforske dokumentasjonen Corona. 
 
 3. Programkonfigurasjon 
 
 config.lua filen håndterer konfigurasjonen for programmet. Som vi gjorde med build.settings, etter åpne denne filen, fjerne innholdet, og legge til følgende konfigurasjon. 
 Søknad = {content = {width = 768, height = 1024, skala = "letterbox" , fps = 30}} 
 Dette setter standard bredde og høyde på skjermen, bruker letterbox å skalere bildene, etter og setter bildefrekvens til 30. Besøk Corona dokumentasjonen for å lære mer om de andre egenskapene du kan sette i config.lua. 
 
 4. Entry Point 
 
 main.lua filen er den filen som programmet laster først og bruker til bootstrap søknaden. Vi skal bruke main.lua å sette noen standardinnstillingene for programmet, og bruk Komponist biblioteket til å laste det første skjermbildet. 
 
 Hvis du ikke er kjent med Corona Komponist bibliotek, så jeg anbefaler å gi 
 dokumentasjon en rask lese. Kort sagt, er Komponist den innebygde løsningen på scene (skjerm) etablering og styring i Corona. Biblioteket gir utviklere med en enkel måte å opprette og overgangen mellom enkeltscener. 
 
 Den nyere Komponist modulen erstatter eldre og nå frarådet Storyboard modul. En migrasjon guide er tilgjengelig for å hjelpe konvertere dine gamle prosjekter over til å bruke Komponist. 
 
 5. Skjule statuslinjen 
 
 Vi ønsker ikke statuslinjen viser i søknaden vår. Legg inn følgende kode til main.lua å skjule statuslinjen. 
 Display.setStatusBar (display.HiddenStatusBar) 
 6. Bruk standard festepunkter 
 
 Hvis du vil angi standard anker eller registreringspunktene legge til følgende kode blokken til main.lua. 
 Display.setDefault ("anchorX", 0,5) display.setDefault ("anchorY ", 0,5) 
 
 anchorX og anchorY egenskaper angi hvor du vil registreringspunktet av visningsobjekter å være. Legg merke til at verdien varierer fra 0.0 til 1.0. For eksempel, hvis du ønsker registreringspunkt for å være øverst til venstre på skjermen objekt, så du hadde satt begge eiendommene til 0,0. 
 
 7. Seed Random Generator 
 
 Spillet vårt skal bruke Lua er Math.random funksjon for å generere tilfeldige tall. For å være sikker på at tallene er helt tilfeldig hver gang programmet kjøres, må du oppgi en startverdi. Hvis du ikke oppgir en startverdi, vil programmet generere samme tilfeldig hver gang. 
 
 En god startverdi er Lua er os.time funksjon siden det vil være forskjellig hver gang 
 programmet kjøres. Legg inn følgende kode til main.lua. 
 Math.randomseed (os.time ()) 
 8. Unngå Globals 
 
 Når du bruker Corona, og spesielt Lua programmeringsspråk, en måte å ha tilgang til variabler søknad dekkende, er å bruke global variables.The måten du deklarerer en global variabel er ved å la seg nøkkelordet lokale i foran variabeldeklarasjon. 
 
 For eksempel, erklærer følgende kode blokken to variabler. Den første er en lokal variabel som bare ville være tilgjengelig i koden blokk det er definert i. Den andre er en global variabel som er tilgjengelig hvor som helst i programmet. 
 Lokal iamalocalvariable = "lokal" iamaglobalvariable = "global" 
 Det er generelt ansett dårlig praksis å bruke globale variabler. Den mest utbredte årsaken er å unngå konflikter navngi, det vil si å ha to variable med samme navn. Vi kan løse dette problemet ved å bruke moduler. Opprett en ny Lua-fil, kall den gamedata.lua, og legge til følgende kode i den. 
 M = {} returnere M 
 Vi bare lage en tabell og returnere den. For å utnytte dette, vi bruker Lua s krever metoden. Legg til følgende main.lua. 
 Lokale gameData = require ("gamedata") 
 Vi kan da legge nøklene til gameData, som vil være den faux  globale   Når vi ønsker å få tilgang til disse variablene, er alt vi trenger å gjøre bruk krever funksjon for å laste gamedata.lua. Hver gang du installerer et modul med Lua s krever funksjon, det legger modulen til en package.loaded bord. Hvis du laster en modul, er package.loaded tabellen sjekket først for å se om modulen er allerede lastet. Hvis det er, så den bruker bufret modul i stedet for å laste den på nytt.   Før vi kan bruke Komponist modulen, må vi først trenger det. Legg til følgende main.lua.   Legg inn følgende kode til main.lua. Dette vil gjøre programmet gå til scenen som heter start, som også er en Lua fil, start.lua. Du trenger ikke å legge den filtypen når du ringer gotoScene funksjonen.   Opprett en ny Lua fil kalt start.lua i prosjektets hovedkatalog. Dette vil være en komponist-fil, noe som betyr at vi må kreve at Komponist modulen og lage en komponist scene. Legg til følgende tekstutdraget til start.lua.   Kallet til newScene gjør start.lua del av komponistens scene hierarki. Dette betyr at det blir en skjerm i spillet, som vi kan kalle komponistens metoder på.   Herfra ut, lagt koden til start.lua bør plasseres over avkastningen uttalelse.   Følgende er de lokale variabler vi trenger for starten scene   Det er viktig å forstå at lokale variabler i hoved blings bare bli kalt en gang,   Dette er viktig å huske på hvis du vil at lokale variabler å bli klargjort på nytt når   pulsatingText og starFieldGenerator er to tilpassede moduler vi vil skape for å legge klasse-lignende funksjonalitet til prosjektet. Lag to nye filer i prosjekt mappe som heter pulsatingtext.lua og starfieldgenerator.lua.   Hvis du har tatt deg tid til å lese dokumentasjon på Komponist, som jeg linket til tidligere, etter at du vil ha lagt merke dokumentasjonen inneholder en mal som inneholder alle mulige   Legg inn følgende kode til start.lua   Denne metoden kalles når scenen syn ikke finnes ennå. Det er her du skal initialisere visningsobjekter og legge dem til åstedet. Gruppen variable peker til self.view, som er en GroupObject for hele scenen.   Vi skaper startknappen ved hjelp av skjerm objektets newImage metode, som tar som parametere banen til bilde og x- og y-verdiene for bildets posisjon på skjermen   Komponist scene: showet metoden har to faser. Viljen fasen kalles når scenen er fortsatt off-screen, men er i ferd med å komme på skjermen. Det gjorde fasen kalles når scenen er på skjermen. Det er der du vil legge til koden for å gjøre scenen livne, start timere, legge hendelsen lyttere, spille av lyd, etc.   I denne opplæringen er vi bare interessert i gjorde fasen.   Vi erklærer en lokal variabel fase, som vi bruker til å sjekke hvilken fase showet metoden er i Siden vi vil være. kommer tilbake til denne scenen senere i spillet, sjekker vi å se om det er en tidligere scene og i så fall, fjern det. Vi legger et trykk lytteren til startknappen som kaller startGame funksjon   Komponist scene: hide metoden har også to faser. Viljen fasen kalles når scenen er på skjermen, men er i ferd med å gå off-screen. Her vil du ønsker å stoppe eventuelle tidtakere, fjerner hendelsen lyttere, stoppe lyd, er etc. gjorde fasen kalles når scenen har gått av skjermen.   I denne opplæringen, vi er bare interessert i viljen fase hvor fjerne vi springen lytteren fra startknappen   startGame funksjonen kalles når brukeren kraner startknappen. I denne funksjonen påberope vi gotoScene komponisten metode, som vil ta oss til gamelevel scenen.   Opprett en ny fil med navnet gamelevel.lua og legge til følgende kode i den. Dette bør se kjent. Vi skaper en ny scene og returnere den.   Vi må legge til scene lyttere for å opprette, vise og skjule metoder. Legg til følgende kode i start.lua   Hvis du teste spillet nå, bør du se en svart skjerm med en knapp du kan trykke på. Trykke på knappen skal ta deg til gamelevel scene, som nå er bare en svart skjerm.   Dette bringer denne delen av serien til en avslutning. I neste del, vil vi begynne å implementere spillets gameplay. Takk for lesing og se deg i den andre delen av denne serien.
 variabler. Ta en titt på følgende eksempel 
 gameData.invaderNum = 1 -. Brukes til å holde orden på det nivået vi er ongameData.maxLevels = 3 - Max antall nivåer i spillet vil havegameData.rowsOfInvaders = 4 - - Hvor mange rader med Invaders å opprette 
 
 9. Krev Komponist 
 
 Lokal komponist = require ("komponist") 
 10. Laste Start Scene 
 
 Composer.gotoScene ("start") 
 11. Start Scene 
 
 Lokal komponist = require ("komponist") lokale scenen = composer.newScene () avkastning scene 
 
 
 
 11. Lokale variabler 
 
 lokale startknappen -. Brukes til å starte spillet lokale pulsatingText = require ("pulsatingtext") - En modul gir et pulserende teksteffekt lokal starFieldGenerator = require ("starfieldgenerator") - En modul som genererer starFieldGenerator lokale starGenerator - En forekomst av starFieldGenerator 
 når scenen er lastet for første gang. Når du navigerer gjennom komponistens scener, for eksempel ved å påberope metoder som gotoScence, vil de lokale variablene allerede initialisert. 
 
 navigering tilbake til en bestemt scene. Den enkleste måten å gjøre dette på er å fjerne scene fra hierarkiet komponist ved å ringe removeScence metoden. Neste gang du navigere til den scenen, vil det automatisk bli lastet inn på nytt. Det er tilnærmingen vi skal ta i denne opplæringen. 
 
 
 12. Storyboard Hendelser 
 
 komponist hendelsen. Kommentarene er svært nyttig som de indikerer hvilke hendelser å utnytte for initialisering eiendeler, timere, etc. Vi er interessert i scenen: opprette, scene: show, og scene:. Skjul metoder for denne opplæringen 
 
 Trinn 1: scene. opprette 
 
 funksjon scene: lage (hendelse) lokal gruppe = self.view startknappen = display.newImage ("new_game_btn .png ", display.contentCenterX, display.contentCenterY + 100) gruppe: sett (startknappen) end 
 
 
 Trinn 2:. scene: showet 
 
 
 Funksjon scene legge inn følgende kode til start.lua. Showet (hendelse) lokal fase = event.phase lokal previousScene = composer.getSceneName ("forrige") if (previousScene ~ = null) så composer.removeScene (previousScene ) end if (fase == "gjorde") da startknappen: addEventListener ("tap", startGame) Sluttslutt 
 
 Trinn 3:. Scene: skjule 
 
 
 funksjon scene. hide (hendelse) lokal fase = event.phase if (fase == "vil") da startknappen: removeEventListener ("tap" , startGame) Sluttslutt 
 16. Start spillet 
 
 Fungere startGame () composer.gotoScene ("gamelevel") end 
 17. Spill nivå Scene 
 
 Lokal komponist = require ("komponist") lokale scenen = composer.newScene () avkastning scene 
 18. Legg Scene Lyttere 
 
 scene. AddEventListener ("skape", scene) scenen: addEventListener ("show", scene) scenen: addEventListener ("skjule", scene) 
 19. Test Progress 
 
 
 Konklusjon 
 

