How to Make a Catch Game in Scratch (Step-by-Step for Kids)
Build a complete "catch the falling apples" game in Scratch 3 — moving player, falling objects, a score, lives and game over — with every block explained.
In this guide
- How the game works
- Step 1: Set up the stage and sprites
- Step 2: Make the bowl move
- Step 3: Make the apple fall
- Step 4: Create the score and lives variables
- Step 5: Catching and missing
- Step 6: Add game over
- Step 7: Make it get harder
- Step 8: Sound and polish
- Common problems and how to fix them
- Challenges to try next
- What you learned
- Frequently asked questions
A catch game is one of the best first games to build in Scratch. It is short enough to finish in one sitting, but it uses the big ideas every game needs: movement, loops, conditions, variables and random numbers.
By the end of this guide you will have a game where a bowl moves left and right, apples fall from the sky, you score a point for each catch, and you lose a life for each miss.
What you need: a computer with a web browser and the free Scratch editor at scratch.mit.edu. Click Create to open the editor. You do not need an account to build the game, but you need one (free) to save it online.
How the game works
Before touching any blocks, it helps to plan. Every game is a set of rules:
- The player (a bowl) moves left and right with the arrow keys.
- An apple starts at the top of the screen at a random place and falls down.
- If the apple touches the bowl, the score goes up by 1 and the apple starts again at the top.
- If the apple reaches the bottom, the player loses a life and the apple starts again.
- When lives reach 0, the game is over.
Writing the rules first is what real game designers do. It turns "make a game" into small jobs you can finish one at a time.
Step 1: Set up the stage and sprites
- In the bottom-right corner, click Choose a Backdrop and pick an outdoor scene, such as Blue Sky.
- Delete the cat: right-click the cat sprite in the sprite list and choose delete.
- Click Choose a Sprite and add Bowl. This is your player.
- Add a second sprite: Apple.
Make both sprites a sensible size. Select a sprite and change Size in the sprite panel — around 80 for the bowl and 60 for the apple works well.
Step 2: Make the bowl move
Select the Bowl sprite and build this script:
when green flag clicked
go to x: (0) y: (-140)
forever
if <key (left arrow) pressed?> then
change x by (-10)
end
if <key (right arrow) pressed?> then
change x by (10)
end
endWhy it works:
go to x: 0 y: -140puts the bowl in the middle near the bottom every time the game starts. The Scratch stage is 480 steps wide (x from -240 to 240) and 360 tall (y from -180 to 180).foreverkeeps checking the keys many times every second.if <key pressed?>is a condition: the code inside only runs when the answer is "yes".change x by -10moves left;change x by 10moves right.
Click the green flag and test it. Too slow? Change 10 to 15.
Step 3: Make the apple fall
Select the Apple sprite. The apple needs to start at a random place along the top, then fall.
when green flag clicked
go to x: (pick random (-220) to (220)) y: (170)
forever
change y by (-5)
endpick random -220 to 220 chooses a new position each time, so the player cannot guess where the apple will appear. change y by -5 moves the apple down a little on every loop.
Test it. The apple falls... and then gets stuck at the bottom. Next, we teach it what to do when it is caught or missed.
Step 4: Create the score and lives variables
A variable is a labelled box that stores a number the game needs to remember.
- Go to the orange Variables category.
- Click Make a Variable, name it
score, and choose For all sprites. - Make another one called
lives.
Tick the boxes next to both so they show on the stage.
Step 5: Catching and missing
Replace the apple's script with this complete version:
when green flag clicked
set [score] to (0)
set [lives] to (3)
go to x: (pick random (-220) to (220)) y: (170)
forever
change y by (-5)
if <touching (Bowl)?> then
change [score] by (1)
go to x: (pick random (-220) to (220)) y: (170)
end
if <(y position) < (-170)> then
change [lives] by (-1)
go to x: (pick random (-220) to (220)) y: (170)
end
endWhy it works:
- At the start, the score is set to 0 and lives to 3, so every new game starts fresh.
touching Bowl?checks whether the apple overlaps the bowl. If it does, we add a point and send the apple back to the top.y position < -170checks whether the apple has reached the bottom edge. If so, the player loses a life.
Play it now. You have a working game!
Step 6: Add game over
At the moment the game never ends, even when lives go below zero. Add one more check inside the apple's forever loop, at the end:
if <(lives) = (0)> then
say [Game over!] for (2) seconds
stop [all]
endstop all stops every script, so the bowl and apple freeze.
Make it look better: paint a new backdrop called Game Over with big text. Then, instead of the say block, use switch backdrop to (Game Over) before stop all.
Step 7: Make it get harder
Great games get more difficult as you get better. Let's make the apple fall faster as the score grows.
- Make a new variable called
speed. - In the apple's script, after
set lives to 3, addset [speed] to (5). - Change
change y by (-5)tochange y by ((0) - (speed)). - Inside the "caught it" part, after
change score by 1, addchange [speed] by (0.5).
Now each catch makes the next apple a little faster. (We write 0 - speed because the apple must move down, which means a negative number.)
Step 8: Sound and polish
- In the apple's Sounds tab, add a sound such as Pop. Put
start sound (Pop)inside the "caught it" part. - Add a sound for a miss, such as Oops, in the "missed it" part.
- Give the bowl a short
say [Ready?] for (1) secondsat the start.
Small touches like these are what make players say "one more go!".
Common problems and how to fix them
| Problem | Likely cause | Fix |
|---|---|---|
| The bowl does not move | The script is on the apple, not the bowl | Select the Bowl sprite and check the script is there |
| The score goes up many times for one catch | The apple stays touching the bowl | Make sure go to x: … y: 170 is inside the "touching" block |
| Lives never go down | The apple never reaches y < -170 | Check the number, or make the bottom check -160 |
| Score and lives show "0" but never change | Variables were made "For this sprite only" | Delete them and make them again "For all sprites" |
Challenges to try next
- Bad apples: add a second falling sprite (a rock). Catching it costs a life.
- Golden apple: a rare sprite worth 5 points that appears only sometimes. Hint: use
pick random 1 to 10and only show it when the answer is1. - High score: make a variable
high score. At game over,if score > high score then set high score to score. - Mouse control: replace the arrow keys with
set x to (mouse x)inside the bowl'sforeverloop.
What you learned
You used the core building blocks of every video game:
- Events —
when green flag clickedstarts everything. - Loops —
foreverkeeps the game running. - Conditions —
if … thendecides what happens. - Variables —
score,livesandspeedremember important numbers. - Randomness —
pick randomkeeps the game surprising.
These ideas are exactly the same in "real" programming languages such as Python and JavaScript. Once you understand them in Scratch, you are ready for more. Next, try our guide to making a maze game in Scratch, or read Scratch vs Python: which should you learn first?
Frequently asked questions
Is Scratch free? Yes. Scratch is a free project from the MIT Media Lab and runs in a web browser. There is also a free desktop app.
What age is this game suitable for? Children from about 7 can build it with a little help; 9 to 12-year-olds can usually follow it alone.
Can I share my game? Yes. Create a free Scratch account, save your project, and click Share. Ask a parent first, and never put personal information in a shared project.
New to StemNest?
Book a free trial class and learn coding and AI live with our friendly tutors.
Book a free trial