In this tutorial series, you’ll learn how to create an Apple Catcher game. The objective of the game is to grab the apples that fall on the screen by dragging the basket. Read on!
Tutorial Teaser
Step 1: Start Button Listeners
This function adds the necesary listeners to the TitleView buttons.
function startButtonListeners(action) if(action == 'add') then titleBg:addEventListener('tap', showGameView) creditsBtn:addEventListener('tap', showCredits) else titleBg:removeEventListener('tap', showGameView) creditsBtn:removeEventListener('tap', showCredits) end end
Step 2: Show Credits
The credits screen is shown when the user taps the about button. A tap listener is added to the credits view to remove it.
function showCredits:tap(e) 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}) end
Step 3: Hide Credits
When the credits screen is tapped, it’ll be tweened out of the stage and removed.
function hideCredits:tap(e) 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
Step 4: Show Game View
When the Start button is tapped, the title view is tweened and removed, revealing the game view. There are many parts involved in this view, so we’ll split them in the next steps.
function showGameView:tap(e) transition.to(titleView, {time = 300, x = -titleView.height, onComplete = function() startButtonListeners('rmv') display.remove(titleView) titleView = nil end})
Step 5: Add Basket
This code places the basket on the stage.
-- Basket basket = display.newImage('basket.png', 203, 240)
Step 6: Info Bar
Next we add the Info Bar image and create the corresponding TextFields that will display the current score and time remaining.
-- Info Bar infoBar = display.newImage('infoBar.png', 280) score = display.newText('0', 65, -2, native.systemFontBold, 14) score:setTextColor(0) timeLeft = display.newText('20', 175, -2, native.systemFontBold, 14) timeLeft:setTextColor(0)
Step 7: Add Physics
Now we add physics to the basket and call the function that will add the game listeners.
-- Add Physics physics.addBody(basket, 'static') -- Game Listeners gameListeners('add')
Get the Full Series!
This tutorial series is available to Tuts+ Premium members only. Read a preview of this tutorial on the Tuts+ Premium web site or login to Tuts+ Premium to access the full content.
Joining Tuts+ Premium. . .
For those unfamiliar, the family of Tuts+ sites runs a premium membership service called Tuts+ Premium. For $19 per month, you gain access to exclusive premium tutorials, screencasts, and freebies from Mobiletuts+, Nettuts+, Aetuts+, Audiotuts+, Vectortuts+, and CgTuts+. You’ll learn from some of the best minds in the business. Become a premium member to access this tutorial, as well as hundreds of other advanced tutorials and screencasts.