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!
Controleer alsjeblieft deel 1 van de serie om deze tutorial volledig te begrijpen en voor te bereiden.
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')
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
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 =
Vervolgens maken we de functie waarmee alle spellogica wordt geïnitialiseerd:
function Main () --codereinde
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
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
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
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
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
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
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
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!