Bouw een Groundhog Whack Game - Interface Creation

In deze tutorialserie zullen we een Whack-a-Groundhog-spel maken. Het doel van het spel is tik op de groundhogs voordat ze verdwijnen. Lees verder!


1. Intro scherm

Via het introscherm kan de gebruiker een aantal opties instellen of het spel beginnen spelen.


2. Optiescherm

In het optiescherm kan de gebruiker de muziek aan- en uitzetten en kiezen met welke snelheid de groundhogs verschijnen.


3. Spelscherm

Het spelscherm is waar alle actie plaatsvindt. De groundhogs springen willekeurig uit hun gaten,
en de speler probeert ze te "meppen" voordat ze weer naar binnen gaan. De speler kan ook vanaf hier naar het optiescherm gaan.


4. Nieuw project

Open de Corona Simulator en kies "Nieuw project".

Kies op het volgende scherm de volgende instellingen:

Druk de "volgende"knop, kies dan open in de editor. Dit wordt geopend "Main.lua"in je standaard teksteditor.


5. Projectconfiguratie

Open "Config.lua"en verwijder alles. Update het bestand met het volgende:

 toepassing = content = width = 320, height = 480, scale = "letterBox", fps = 30,

Hiermee worden de standaardbreedte, hoogte, schaal en FPS van het project ingesteld. De "brievenbus"Schaalinstelling betekent dat de app zo gelijkmatig mogelijk in beide richtingen opschaalt. Indien nodig toont het spel" Letter Boxed ", zoals je ziet in sommige dvd-films of met oude apps op een iPhone 5.


6. De statusbalk verbergen

We willen niet dat de statusbalk wordt weergegeven in onze app, dus voer het volgende in "Main.lua":

 display.setStatusBar (display.HiddenStatusBar);

7. Lokale variabelen

Dit zijn alle variabelen die we in deze game zullen gebruiken. Lees de opmerkingen om te begrijpen waar elk voor is.

 local allGroundHogs =  - Tabel om alle groundhogs local groundHogXPositions = 240,410,280,145,429,80,208,366 local groundHogYPositions = 259,259,209,184,166,118,91,99 local gameScreenGroup - groep die het spelscherm bevat local introScreenGroup - groep die de intro vasthoudt scherm lokale optiesScreenGroup - groep die het optiescherm lokaal houdt isPlay = false - of de speler het spel heeft gestart of niet lokale groundHogTimer - timer die wordt gebruikt om groundhogs te genereren local groundHogSpeed ​​= 1500

8. SetUpIntroScreen ()

De setUpIntroScreen () functie wordt gebruikt om het eerste scherm in te stellen dat de gebruiker zal krijgen.

 functie setUpIntroScreen () einde

9. SetUpOptionsScreen ()

De setUpOptionsScreen () functie zorgt voor het instellen van het optiescherm.

 functie setUpOptionsScreen () einde

10. SetUpGameScreen ()

De setUpGameScreen () functie stelt het spelscherm in.

 functie setUpGameScreen () einde

11. GetRandomGroundHog ()

De getRandomGroundHog () functie selecteert een willekeurige groundhog om in een van de gaten te verschijnen.

 functie getRandomGroundHog () einde

12. GroundHogSpriteListener ()

Deze functie wordt gebruikt om te vertellen wanneer de animatie van het groundhog is beëindigd.

 functie groundHogSpriteListener (event) einde

13. GroundHogHit ()

De groundHogHit (e) functie wordt gebruikt om te vertellen wanneer de speler op een groundhog heeft getikt.

 functie groundHogHit (e) einde

14. SoundComplete ()

Wanneer de muziek stopt met spelen, gebruiken we deze functie om hem opnieuw te starten.

 function soundComplete () einde

15. De achtergrond van het spel instellen

In deze stap zullen we beginnen met het instellen van het spelscherm. Voer de volgende code in de setUpGameScreen () functie die u in de bovenstaande stap hebt ingevoerd.

 gameScreenGroup = display.newGroup () local gameBackground = display.newImage ("background.png", true); gameScreenGroup: insert (gameBackground)

Voer helemaal onderaan 'main.lua' het volgende in:

 setUpGameScreen ()

Als je nu test, zou je de achtergrond van het spel moeten zien.


16. Het beeldvel instellen

De groundhogs worden geanimeerd met behulp van een spriteblad. Voer het volgende in onder de regel gameScreenGroup: insert (gameBackground) die u in de bovenstaande stap hebt ingevoerd.

 lokale opties = width = 142, height = 91, numFrames = 7 local imageSheet = graphics.newImageSheet ("groundhogsheet.png", opties)

De opties variabele is een tabel met de opties voor het afbeeldingsblad. De breedte en hoogte zijn de breedte en hoogte van de afbeeldingen in de "groundhogsheet.png", en de numFrames is gelijk aan het aantal afbeeldingen in de .png


17. Sequentiële gegevens

Nu dat we onze hebben imageSheet setup kunnen we de animaties instellen. De animatie (reeks) gegevens worden bewaard in een variabele sequenceData. Voer het volgende in onder de code van boven.

 local sequenceData = name = "show", start = 2, count = 3, time = 1000, loopCount = 0, loopDirection = "bounce"

Hier noemen we de volgorde "show", de begin is het "frame" van het afbeeldingsvel waarop de reeks begint op en tellen is het aantal frames in de reeks.

De loopCount is hoe vaak u de reeks wilt afspelen. Nul betekent voor altijd, en de loopDirection is hoe je de reeks wilt laten spelen. De bounce-optie betekent vooruit spelen en dan achteruit.


18. GroundHog Sprites

Met de imageSheet en sequenceData setup, kunnen we onze groundhogs plaatsen en animeren. Voer de volgende code onder de sequenceData je hebt de bovenstaande stap ingevoerd.

 lokale tempGroundHog voor i = 1, #groundHogXPositions do tempGroundHog = display.newSprite (imageSheet, sequenceData) tempGroundHog.x = groundHogXPositions [i] tempGroundHog.y = groundHogYPositions [i] tempGroundHog: setSequence ("show") gameScreenGroup: insert (tempGroundHog) table.insert (allGroundHogs, tempGroundHog) tempGroundHog: play () end

Elke keer door de lus maken we een nieuwe tempGroundHog Sprite, stel het in X een Y posities, stel de volgorde in op "show", plaats deze in de gameScreenGroup, en plaats het dan in de allGroundHogs tafel.

Als je nu test, zou je alle groundhog-animaties moeten zien spelen. Het ziet er echter een beetje verkeerd uit en dat zullen we in het volgende deel van deze serie oplossen!


Conclusie

Hiermee komt het eerste deel van deze serie tot een einde. In het volgende deel zullen we de groundhog-animatie voltooien en de spellogica voltooien. Bedankt voor het lezen en blijf op de hoogte!