Create a Fun Whack-a-Mole Game in Scratch: Step-by-Step Tutorial
Here’s a step-by-step tutorial to create a Whack-a-Mole game in Scratch with code snippets:
1. Setting Up the Stage:
Open Scratch and create a new project.
Choose a background that resembles a field. You can search for “grass” backgrounds in the library or draw your own.
2. Creating Sprites:
Add a new sprite for your hammer. You can use the pre-loaded paintbrush sprite and modify it, or draw your own hammer.
Add another sprite for the mole. You can use the cat sprite or search for “mole” sprites in the library.
3. Coding the Hammer Movement:
Go to the scripting area for the hammer sprite.
Drag a “When green flag clicked” block from the Events tab and snap it onto the scripting area.
Inside the loop, drag a “forever” block from the Control tab. This will keep the hammer ready to whack.
Add a “move to x: 0 y: 0” block from the Motion tab to position the hammer in the center (adjust coordinates if needed).
Next, add a “go to mouse-pointer” block from the Motion tab. This will make the hammer follow your mouse cursor.
4. Coding the Mole:
Go to the scripting area for the mole sprite.
Drag a “When green flag clicked” block from the Events tab.
Inside the loop, add a “hide” block to start with the mole hidden underground.
5. Making the Mole Pop Up:
We want the mole to pop up from its hole at random times. Drag an “orange” control block and choose “repeat until” from the Control tab.
Inside the loop, add a “wait random seconds from 1 to 5” block (adjust the time range for desired pop-up frequency).
Then, add a “show” block to make the mole appear.
6. Whack Detection and Points:
Go back to the hammer sprite’s script.
Inside the “forever” loop, add an “if” block from the Control tab.
Check the condition “touching mole?” under the Sensing tab.
If the hammer touches the mole, we want several things to happen:
Play a “squeak” sound effect (Sound tab).
Hide the mole again with a “hide” block (Motion tab).
Increase a score variable by 1 (create a variable from the Data tab and use “change (score variable) by 1”).
Reset the mole pop-up loop with a “stop script” block (Control tab) inside another “repeat until” loop with a short wait (like 1 second) to prevent instant respawns.
7. (Optional) Adding Lives:
You can add a lives variable and decrease it by 1 (with “change (lives variable) by -1”) whenever the hammer misses the mole (check for “not touching mole?”).
Display the score and lives on the stage with text sprites.
When lives reach 0, end the game with a “game over” message.