Corona SDK creëer een Whack-a-Mol-game - Interactiviteit toevoegen

Dit is de tweede aflevering in onze Corona SDK Whack A Mole-zelfstudie. In de tutorial van vandaag zullen we toevoegen aan onze interface en beginnen met het coderen van de game-interactie. Lees verder!


Waar we zijn gebleven ...

Controleer alsjeblieft deel 1 van de serie om deze tutorial volledig te begrijpen en voor te bereiden.


Stap 1: laad geluiden

Geluidseffecten die in het spel worden gebruikt, worden bij het begin geladen. Dit maakt ze onmiddellijk klaar om te spelen.

 lokale hit = audio.loadSound ('hit.wav')

Stap 2: Variabelen

Dit zijn de variabelen die we zullen gebruiken. Lees de opmerkingen in de code om meer over hen te weten. Sommige van hun namen spreken voor zich, dus daar zal geen commentaar meer zijn.

 local timerSource local currentWorms = 0 - wormen alweer lokale wormenHit = 0 lokaal totaalWorms = 10 --totale wormen om te raken

Stap 3: Functies verklaren

Verklaar alle functies als lokaal aan het begin.

 local Main =  local startButtonListeners =  local showCredits =  local hideCredits =  local showGameView =  local prepareWorms =  local startTimer =  local showWorm =  local popOut =  local wormHit =  lokale waarschuwing = 

Stap 4: Constructor

Vervolgens maken we de functie waarmee alle spellogica wordt geïnitialiseerd:

 function Main () --codereinde

Stap 5: Voeg de titelweergave toe

Nu plaatsen we de TitleView op het podium en roepen we een functie aan die de tik luisteraars naar de knoppen.

 functie Main () titleBg = display.newImage ('titleBg.png') playBtn = display.newImage ('playBtn.png', display.contentCenterX - 25.5, display.contentCenterY + 40) creditsBtn = display.newImage ('creditsBtn.png ', display.contentCenterX - 40.5, display.contentCenterY + 85) titleView = display.newGroup (titleBg, playBtn, creditsBtn) startButtonListeners (' add ') einde

Stap 6: Start-knop Luisteraars

Deze functie voegt de benodigde 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

Stap 7: Toon credits

Het credits scherm wordt getoond wanneer de gebruiker op de credits knop tikt. 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 ('creditsView.png') transition.from (creditsView, time = 300, x = -creditsView.width, onComplete = function () creditsView: addEventListener ('tap', hideCredits) creditsView.x = creditsView.x - 0.5 einde) einde

Stap 8: Verberg de credits

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, x = -creditsView.width, onComplete = function () creditsView: removeEventListener ('tap', hideCredits) display.remove (creditsView) creditsView = nil end) end

Stap 9: Spelweergave tonen

Wanneer de Spelen op de knop is getikt, de titelweergave is getweend en verwijderd waardoor de gameweergave wordt onthuld. De scoretekst is ook in deze stap toegevoegd.

 functie showGameView: tik op (e) transition.to (titleView, time = 300, x = -titleView.height, onComplete = function () startButtonListeners ('rmv') display.remove (titleView) titleView = nil end) score = display.newText ('0' ... '/' ... totalWorms, 58, 6, native.systemFontBold, 16) score: setTextColor (238, 238, 238) prepareWorms () einde

Stap 10: Wormen voorbereiden

De volgende functie maakt en plaatst de wormen in het werkgebied. We verbergen ze later en voegen een toe tik luisteraar voor iedereen.

 functie prepareWorms () w1 = display.newImage ('worm.png', 80.5, 11) w2 = display.newImage ('worm.png', 198.5, 51) w3 = display.newImage ('worm.png', 338.5, 34) w4 = display.newImage ('worm.png', 70.5, 110) w5 = display.newImage ('worm.png', 225.5, 136) w6 = display.newImage ('worm.png', 376.5, 96) w7 = display.newImage ('worm.png', 142.5, 211) w8 = display.newImage ('worm.png', 356.5, 186) worms = display.newGroup (w1, w2, w3, w4, w5, w6, w7, w8) voor i = 1, worms.numChildren do worms [i]: addEventListener ('tap', wormHit) worms [i] .isVisible = false end startTimer () end

Stap 11: Code Review

Hier is de volledige code die in deze zelfstudie is geschreven, samen met opmerkingen om u te helpen bij het identificeren van elk onderdeel:

 -- Whack A Worm Game - Ontwikkeld door Carlos Yanez - Hide Status Bar display.setStatusBar (display.HiddenStatusBar) - Importeer MovieClip local movieclip = require ('movieclip') - Graphics - [Achtergrond] local bg = display.newImage ('gameBg.png') - [Titelweergave] lokale titelBg lokale playBtn lokale creditsBtn lokale titelView - [Credits] lokale kredietenView - [Score] lokale score - [Worms] lokale w1 lokale w2 lokale w3 lokale w4 lokale w5 lokale w6 lokale w7 lokale w8 lokale wormen local lastWorm =  - Load Sound local hit = audio.loadSound ('hit.wav') - Variabele lokale timerBron lokale currentWorms = 0 lokale wormsHit = 0 local totalWorms = 10 - Functies local Main =  local startButtonListeners =  local showCredits =  local hideCredits =  local showGameView =  local prepareWorms =  local startTimer =  local showWorm =  local popOut =  local wormHit =  local alert =  - Hoofdfunctie functie Hoofd () titleBg = display.newImage ('titleBg.png') playBtn = display.newImage ('playBtn.png ', display.contentCenterX - 25.5, display.contentCenterY + 40) creditsBtn = display.newImage (' creditsBtn.png ', display.contentCenterX - 40.5, display.contentCenterY + 85) titleView = display.newGroup (titleBg, playBtn, creditsBtn) startButtonListeners ('add') eindfunctie startButtonListeners (actie) if (action == 'add') then playBtn: addEventListener ('tap', showGameView) creditsBtn: addEventListener ('tap', showCredits) else playBtn: removeEventListener ('tik op' , showGameView) creditsBtn: removeEventListener ('tap', showCredits) end end function showCredits: tik op (e) playBtn.isVisible = false creditsBtn.isVisible = false creditsView = display.newImage ('creditsView.png') transition.from (creditsView, time = 300, x = -creditsView.width, onComplete = function () creditsView: addEventListener ('tap', hideCredits) creditsView.x = creditsView.x - 0.5 end) end function hideCredits: tik op (e) playBtn.isVisible = true creditsBtn.isVisible = true transition.to (creditsView, time = 300, x = -creditsView.width, onCom plete = function () creditsView: removeEventListener ('tap', hideCredits) display.remove (creditsView) creditsView = nil end) einde functie showGameView: tik op (e) transition.to (titleView, time = 300, x = -titleView .height, onComplete = function () startButtonListeners ('rmv') display.remove (titleView) titleView = nil end) score = display.newText ('0' ... '/' ... totalWorms, 58, 6, native.systemFontBold, 16) score: setTextColor (238, 238, 238) prepareWorms () eindfunctie prepareWorms () w1 = display.newImage ('worm.png', 80.5, 11) w2 = display.newImage ('worm.png', 198.5, 51) w3 = display.newImage ('worm.png', 338.5, 34) w4 = display.newImage ('worm.png', 70.5, 110) w5 = display.newImage ('worm.png', 225.5, 136) w6 = display.newImage ('worm.png', 376.5, 96) w7 = display.newImage ('worm.png', 142.5, 211) w8 = display.newImage ('worm.png', 356.5, 186) worms = display.newGroup (w1, w2, w3, w4, w5, w6, w7, w8) voor i = 1, worms.numChildren do worms [i]: addEventListener ('tap', wormHit) worms [i] .isVisible = false nl d startTimer () einde

De volgende keer…

In het volgende en laatste deel van de serie zullen we de wormanimatie afhandelen, gebeurtenissen tikken om de worm te 'hitsen' en de laatste stappen nemen voorafgaand aan de app-release, zoals app-testen, een startscherm maken, een pictogram toevoegen en, tenslotte, het bouwen van de app. Blijf op de hoogte voor het laatste deel!