Maak een op fysica gebaseerd puzzelspel - Interactie toevoegen

Dit is de tweede aflevering in onze Corona SDK fysica puzzel zelfstudie. In de tutorial van vandaag zullen we toevoegen aan onze interface en onze interactie met het spel. Lees verder!


Ook verkrijgbaar in deze serie:

  1. Maak een op fysica gebaseerd puzzelspel - Interface Creation
  2. Maak een op fysica gebaseerd puzzelspel - Interactie toevoegen

Waar we zijn gebleven ...

Zorg ervoor dat u het eerste deel van de zelfstudie leest om deze tutorial volledig te begrijpen en voor te bereiden.


1. Startknop Luisteraars

Deze functie voegt de nodige luisteraars toe aan de TitleView toetsen.

 function startButtonListeners (action) if (action == 'add') then playBtn: addEventListener ('tap', showGameView) creditsBtn: addEventListener ('tap', showCredits) else playBtn: removeEventListener ('tap', showGameView) creditsBtn: removeEventListener ( 'tik', showCredits) einde

2. Toon credits

Het credits scherm wordt getoond wanneer de gebruiker op de wat betreft knop. EEN tik luisteraar is toegevoegd aan de weergave credits om deze te verwijderen.

 functie showCredits: tik op (e) playBtn.isVisible = false creditsBtn.isVisible = false creditsView = display.newImage ('credits.png', -130, display.contentHeight-140) transition.to (creditsView, time = 300, x = 65, onComplete = function () creditsView: addEventListener ('tap', hideCredits) end) einde

3. Verberg tegoeden

Wanneer het creditsscherm wordt aangebroken, wordt het uit het werkgebied geschud en verwijderd.

 functie hideCredits: tik op (e) playBtn.isVisible = true creditsBtn.isVisible = true transition.to (creditsView, time = 300, y = display.contentHeight + creditsView.height, onComplete = function () creditsView: removeEventListener ('tap' , hideCredits) display.remove (creditsView) creditsView = nil end) end

4. Game weergave tonen

Wanneer de spelen knop is aangetikt, de titelweergave is getweend en verwijderd om de gameweergave te onthullen. Er zijn veel onderdelen betrokken bij deze weergave, dus we zullen ze in de volgende stap splitsen.

 functie showGameView: tik op (e) transition.to (titleView, time = 300, x = -titleView.height, onComplete = function () startButtonListeners ('rmv') display.remove (titleView) titleView = nil end)

5. Instructies Bericht

De volgende regels voegen het instructiesbericht toe. We zullen het gedurende twee seconden laten zien en het vervolgens laten vervagen.

 -- Instructies Bericht local ins = display.newImage ('ins.png', 32, 182) transition.from (ins, time = 200, alpha = 0.1, onComplete = function () timer.performWithDelay (2000, function () transition. to (ins, time = 200, alpha = 0.1, onComplete = function () display.remove (ins) ins = nil end) end) end) lvlImg = display.newImage ('level.png', 202, 2 )

6. Verdieping

Met deze code wordt een rechthoek in de bodem van het werkgebied gemaakt om als vloer te gebruiken.

 -- Floor local floor = display.newRect (0, 320, 480, 1)

7. Niveau vakken

Dit deel behandelt de levelcreatie. Het begint met het maken van de vakken in het werkgebied. We zullen meer over deze functie leren in de volgende paar stappen.

 -- Niveaudozen addBox ('g', 60, 272) addBox ('s', 148, 284) addBox ('s', 148, 248) addBox ('s', 148, 212) addBox ('s', 148, 176) addBox ('n', 297, 272) addBox ('n', 297, 224) addBox ('n', 297, 176) addBox ('w', 148, 164)

8. Ball

Deze code voegt de bal toe aan het niveau.

 -- Ball ball = display.newImage ('ball.png', 234, 138) ball.name = 'bal'

9. Natuurkunde

Hier voegen we fysica toe aan de vloer en de bal.

 -- Fysica toevoegen physics.addBody (floor, 'static') physics.addBody (ball, 'dynamic', radius = 12) end

10. Voeg boxfunctie toe

De volgende functie gebruikt drie parameters om een ​​box-object te maken. U kunt het type vak opgeven in de eerste parameter en de positie ervan in de volgende twee. Met deze methode kunt u complexe niveaus maken met slechts een paar regels code. Het voegt fysica toe aan de nieuwe box, evenals een tik-luisteraar.

 functie addBox (type, X, Y) local b = display.newImage (type ... 'Box.png', X, Y) physics.addBody (b, 'dynamic') if (type ~ = 'g') en dan b: addEventListener ('tap', removeBox) elseif (type == 'g') en vervolgens b: addEventListener ('botsing', onCollision) end-end

11. Verwijder Box

Met deze functie wordt het doelvak verwijderd wanneer erop wordt getikt.

 functie removeBox (e) display.remove (e.target) einde

12. Botsingen

We gebruiken deze code om te zien of de bal in botsing komt met het doelvak en een melding te sturen als het waar is.

 function onCollision (e) if (e.other.name == 'ball') then display.remove (ball) alert () end end

13. Alert

De waarschuwingsfunctie maakt een waarschuwingsweergave, animeert deze en beëindigt het spel.

 functie alert (actie) gameListeners ('rmv') if (action == 'lose') then alertView = display.newImage ('lose.png', 110, 218) else alertView = display.newImage ('win.png', 110, 218) einde overgang. Vanaf (alertView, time = 200, alpha = 0.1) einde

14. Hoofdfunctie oproepen

Om het spel te starten, de Hoofd functie moet worden gebeld. We doen dat met de volgende code op zijn plaats.

 Hoofd()

15. Scherm laden

De Default.png bestand is een afbeelding die meteen wordt weergegeven wanneer u de toepassing start. Het wordt automatisch door de Corona-compiler toegevoegd wanneer u het aan uw projectbronmap toevoegt.


16. Pictogram

Met behulp van de afbeeldingen die u eerder hebt gemaakt, kunt u een leuk pictogram maken. De pictogramgrootte voor het niet-retina-iPhone-pictogram is 57x57px, maar de netvliesversie is 114x114px en de iTunes Store vereist een 512x512px versie. Ik stel voor het maken van de 512x512 versie eerst en schalen naar de andere maten.

Het hoeft geen afgeronde hoeken of een transparante schittering te hebben. iTunes en de iPhone zullen dat voor je doen.


17. Testen in Simulator

Het is tijd om de laatste test te doen. Open de Corona Simulator, blader naar uw projectmap en klik op Openen. Als alles werkt zoals verwacht, bent u klaar voor de laatste stap!


18. Bouw

Ga in de Corona Simulator naar Bestand> Build en selecteer uw doelapparaat. Vul de vereiste gegevens in en klik op bouwen. Wacht een paar seconden en uw app is gereed voor testen en indienen van apparaten voor distributie!


Conclusie

In deze serie leerden we over fysisch gedrag, tikluisteraars en botsingen. Dit zijn vaardigheden die echt nuttig kunnen zijn in een groot aantal spellen.

Experimenteer met het eindresultaat en probeer je eigen aangepaste versie van het spel te maken!

Ik hoop dat je deze serie leuk vond en vond het nuttig. Bedankt voor het lezen!