Lag et flykampspill i Corona Grensesnitt

Hva du skal skape

Introduksjon

I denne korte serien vil jeg vise deg hvordan du lager et fly kampspill som minner om det gamle 1942 arkadespillet. Underveis lærer du om Coronas storyboard-funksjonalitet, timere, flytte et tegn og litt trigonometri.

Grafikken som ble brukt i denne opplæringen ble opprettet av Ari Feldman og gitt under Common Public License, som betyr at de er fri til bruk. Pass på å sjekke ut Ari Feldmans SpriteLib. La oss komme i gang.

1. Nytt prosjekt

Åpne Corona Simulator, klikk Nytt prosjekt, og konfigurer prosjektet som vist nedenfor. Velg et sted for å lagre prosjektet ditt og klikk 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 tar en titt på hver fil i de neste trinnene.

2. Build.Settings

De build.settings Filen er ansvarlig for prosjektets byggetidseiendommer. Åpne denne filen, fjern innholdet, og fyll den med følgende kodestykke.


settings = orientation = default = "portrait", støttet = "portrait",,

I build.settings, Vi setter standardretningen og begrenser søknaden til bare å støtte en stående orientering. Du kan lære hvilke andre innstillinger du kan inkludere i build.settings ved å utforske Corona-dokumentasjonen.

3. Config.lua

De config.lua filen håndterer programmets konfigurasjon. Som vi gjorde med build.settings, åpne denne filen, fjern innholdet, og legg til følgende kode.


søknad = content = width = 768, height = 1024, skala = "letterbox", fps = 30,

Dette angir standardbredde og høyde på skjermen, bruker letterbox å skalere bildene, og setter rammer per sekund til 30.

Du kan lære hvilke andre egenskaper du kan sette inn config.lua ved å sjekke ut Corona-dokumentasjonen.

4. Main.lua

De main.lua fil er filen som søknaden lastes først og bruker for å starte opp programmet. Vi skal bruke main.lua for å angi noen standardinnstillinger for programmet og Storyboard modul for å laste den første skjermen.

Hvis du ikke er kjent med Corona's Storyboard-modul, anbefaler jeg at du gir dokumentasjonen en rask lesning. Kort sagt, Storyboard er den innebygde løsningen til scene ("skjermer") opprettelse og ledelse i Corona. Dette biblioteket gir utviklere en enkel måte å lage og overgang mellom individuelle scener.

5. Skjul statuslinje

Vi ønsker ikke at statuslinjen skal vises i vår søknad. Legg til følgende kodestykke til main.lua for å skjule statuslinjen.


display.setStatusBar (display.HiddenStatusBar)

6. Angi standard ankerpunkter

For å angi standardanker (registreringspunkter) legger du til følgende i main.lua.

display.setDefault ("anchorX", 0) display.setDefault ("anchorY", 0)

De anchorX og anchorY Egenskaper spesifiserer hvor du vil at registreringspunktet for skjermobjektene skal være. Vær oppmerksom på at verdien varierer fra 0.0 til 1.0. Hvis du for eksempel vil at registreringspunktet skal være sentrum for skjermobjektet, vil du sette begge egenskapene til 0.5.

7. Frø Random Generator

Vårt spill vil bruke Lua math.random funksjon for å generere tilfeldige tall. For å sikre at tallene er virkelig tilfeldig hver gang applikasjonen går, må du oppgi en frøverdi. Hvis du ikke gir en frøverdi, vil applikasjonen generere den samme tilfeldigheten hver gang.

En god frøverdi er Luas os.time funksjon siden det vil være annerledes hver gang applikasjonen kjøres. Legg til følgende kodestykke til main.lua.

math.randomseed (os.time ()) 

8. Krev Storyboard

Før vi kan bruke Storyboard-modulen, må vi først kreve det. Legg til følgende til main.lua.

lokal storyboard = krever "storyboard"

9. Laster startskjermbildet

Skriv inn følgende kodestykke under linjen der du krevde Storyboard-modulen.

storyboard.gotoScene ("start")

Dette vil gjøre søknaden gå til skjermen som heter start, som også er en Lua-fil, start.lua. Du trenger ikke å legge til filtypen når du ringer til gotoScene funksjon.

10. Startskjerm

Opprett en ny Lua-fil som heter start.lua i prosjektets hovedkatalog. Dette blir en storyboard-fil, noe som betyr at vi må kreve Storyboard-modulen og lage en storyboard-scene. Legg til følgende utdrag til start.lua.

lokal storyboard = krever ("storyboard") lokal scene = storyboard.newScene ()
Anropet til newScene gjør at start.lua en del av søknadens storyboard. Dette betyr at det blir en skjerm i spillet, som vi kan ringe til storyboard-metoder på.

11. Lokale variabler

Vi trenger bare en lokal variabel, start knapp, i hoveddelen av start.lua. Denne lokale variabelen brukes til å referere til startknappen i denne scenen.

lokal startknapp 

Det er viktig å forstå at lokale variabler i hovedklumpen bare blir kalt en gang, når scenen lastes for første gang. Når du navigerer gjennom storyboardet, for eksempel ved å påberope seg metoder som gotoScence, De lokale variablene vil allerede bli initialisert.

Dette er viktig å huske om du vil at de lokale variablene skal reinitialiseres når du navigerer tilbake til en bestemt scene. Den enkleste måten å gjøre dette på er å fjerne scenen fra storyboardet ved å ringe removeScence metode. Neste gang du navigerer til den aktuelle scenen, blir den automatisk lastet opp. Det er den tilnærmingen vi skal ta i denne opplæringen.

12. Storyboard Events

Hvis du har tatt deg tid til å lese dokumentasjonen på storyboards jeg koblet til tidligere, har du lagt merke til at dokumentasjonen inneholder en mal som inneholder alle mulige storyboard-hendelser. Kommentarene er svært nyttige da de angir hvilke hendelser som skal utnytte for å initialisere aktiver, timere osv.

Malen kan virke litt overveldende først. Men for denne opplæringen er vi kun interessert i tre hendelser, createSceneenterScene, og exitScene.

13. Opprett scene

Legg til følgende i snippet til start.lua.

funksjonsscene: createScene (event) lokal gruppe = self.view lokal bakgrunn = display.newRect (0, 0, display.contentWidth, display.contentHeight) bakgrunn: setFillColor (0, .39, .75) gruppe: lokal bigplane = display.newImage ("bigplane.png", 0,0) gruppe: sett inn (bigplane) startknapp = display.newImage ("startbutton.png", 264,670) gruppe: sette inn (startknapp) ende

Denne metoden kalles når scenens syn ikke eksisterer ennå. Her skal du initialisere skjermobjektene og legge dem til scenen. De gruppe variabel peker på self.view, hvilken er en GroupObject for hele scenen.

Vi tegner deretter et rektangel for bakgrunnen. Corona Vise objekt kommer med noen tegne metoder, for eksempel newCircle, ny linje, og, som vist i koden ovenfor, newRect. Vi påberoper oss også setFillColor å gi rektangelet en blåaktig farge. Parametrene vi passerer er prosenter.

Vi setter deretter inn bakgrunn inn i gruppen. Det er viktig å sette inn visningsobjekter i visningsgruppen for å sikre at de fjernes når hovedvisningen er fjernet. Endelig opprett startknappen og legg den til i gruppen også. De vise objektet har newImage metode som tar parametrene til banen og bildet x og y verdier for bildeets posisjon på skjermen.

14. Skriv inn scene

De enterScene Metoden kalles umiddelbart etter at scenen har flyttet på skjermen. Her kan du legge til hendelseslyttere, starte timere, laste lyd, etc. Legg til følgende kode nedenfor koden du la til i forrige trinn.


funksjonsscene: enterScene (event) startknapp: addEventListener ("tap", startGame) avslutte

I enterScene, Vi legger til en hendelseslytter til start knapp, som vil ringe til start spill Fungerer når brukerne tapper startknappen.

15. Avslutt scene

De exitScene Metoden kalles når scenen er i ferd med å bevege seg på skjermen. Det er her du vil angre hva du satt opp i enterScene metode, for eksempel fjerne hendelseslyttere, stoppe timere, laste av lyd osv. Legg til følgende kode nedenfor koden du la til i forrige trinn.

funksjonsscene: exitScene (event) startknapp: removeEventListener ("tap", startGame) avslutte

Alt vi gjør i exitScene Metoden fjerner hendelseslytteren vi har lagt til i start knapp.

16. Start spillet

De start spill funksjonen er enkel. Den har storyboard lasten gamelevel scene.

funksjon startGame () storyboard.gotoScene ("gamelevel") slutten

17. Legge til lyttere til scenen

Etter å ha lagt til createScene, enterScene, og exitScene metoder, må vi registrere scenen for å lytte etter disse hendelsene. Skriv inn følgende kodestykke for å gjøre dette.

scene: addEventListener ("createScene" scene) scene: addEventListener ("enterScene" scene) scene: addEventListener ("exitScene" scene)

18. Returner scenen

Det siste du må sørge for at du gjør i et storyboard, er å returnere scenen, fordi det er en modul.

retur scene

19. Legge til GameLevel-scenen

Før vi kan teste vår fremgang, må vi legge til gamelevel scene. Opprett en ny Lua-fil i prosjektets hovedkatalog og navngi den gamelevel.lua. Legg til følgende kodestykke i filen du nettopp har opprettet.

lokal storyboard = kreve ("storyboard") lokal scene = storyboard.newScene () retur scene

Som vi så tidligere, krever vi først storyboard-modulen, lager en ny scene og returnere scenen. De gamelevel scenen er scenen der vi skal implementere spillets spill.

Konklusjon

Dette bringer den første delen av denne serien til slutt. I neste del av denne serien begynner vi å implementere spillets spill. Takk for at du leser, og jeg vil se deg der.