Introduction

You are going to learn how to make a game, in which you’ll use the mouse to navigate a boat to a desert island.

screenshot
screenshot

Step 1: Planning your game

Activity Checklist

  • Start a new Scratch project, and delete the cat sprite so that your project is empty.

  • Click on your stage backdrop and plan out your level. You should add:
    • Wood that your boat has to avoid;
    • A desert island that your boat has to get to.

    Here’s how your game could look:

    screenshot
    screenshot

Step 2: Controlling the boat

Activity Checklist

  • If your club leader has given you a ‘Resources’ folder, click ‘Choose new sprite from file’ and add the ‘boat.png’ image. You should shrink the sprite and put it in it’s starting position.

    screenshot
    screenshot

    If you don’t have the boat.png image, you can draw your own boat instead!

  • You are going to control the boat with your mouse. Add this code to your boat:

    screenshot
    screenshot
  • Test out your boat, by clicking the flag and moving the mouse. Does the boat sail towards the mouse?

    screenshot
    screenshot
  • What happens if the boat reaches the mouse pointer?

    To stop this happening, you’ll need to add an if block to your code, so that the boat only moves if it is more than 5 pixels away from the mouse.

    screenshot
    screenshot
  • Test out your boat again, to check whether the problem has been fixed.

Save your project

Step 3: Crashing!

Your boat can sail through the wooden barriers! Let’s fix that.

Activity Checklist

  • You’ll need 2 costumes for your boat, one normal costume, and one for when the boat crashes. Duplicate your boat costume, and name them ‘normal’ and ‘hit’.

  • Click on your ‘hit’ costume, and choose the ‘Select’ tool to grab bits of the boat and move and rotate them around. Make your boat look as if it’s crashed.

    screenshot
    screenshot
  • Add this code to your boat, inside the forever loop, so that it crashes when it touches any brown wooden bits:

    screenshot
    screenshot

    This code is inside the forever loop, so that your code keeps checking if the boat has crashed.

  • You should also make sure that your boat always starts looking like it’s ‘normal’.

  • Now if you try to sail through a wooden barrier, you should see that your boat crashes and moves back to the start.

    screenshot
    screenshot

Save your project

Challenge: Winning!

Can you add another if statement to your boat’s code, so that the player wins when they get to the desert island?

When the boat gets to the yellow desert island, it should say ‘YEAH!’ and then the game should stop. You’ll need to use this code:

    say [YEAH!] for (1) secs
    stop [all v]
screenshot
screenshot

Save your project

Challenge: Sound effects

Can you add sound effects to your game, for when the boat crashes, or reaches the island at the end. You could even add background music (see the previous ‘Rock Band’ project if you need help with this).

Save your project

Step 4: Time Trial

Let’s add a timer to your game, so that the player has to get to the desert island as fast as possible.

Activity Checklist

  • Add a new variable called time to your stage. You can also change the display of your new variable. If you need help, have a look at the ‘Balloons’ project.

    screenshot
    screenshot
  • Add this code to your stage, so that the timer counts up until the boat reaches the desert island:

    screenshot
    screenshot
  • That’s it! Test out your game and see how quickly you can get to the desert island!

    screenshot
    screenshot

Save your project

Step 5: Obstacles and power-ups

This game is far too easy - let’s add things to make it more interesting.

Activity Checklist

  • First let’s add some ‘boosts’ to your game, which will speed up the boat. Edit your stage backdrop and add in some white booster arrows.

    screenshot
    screenshot
  • You can now add some code to your boat’s forever loop, so that it moves 3 extra steps when touching a white booster.

    screenshot
    screenshot
  • You can also add in a spinning gate, which your boat has to avoid. Add in a new sprite called ‘gate’, which looks like this:

    screenshot
    screenshot

    Make sure that the colour of the gate is the same as the other wooden barriers.

  • Set the center of the gate sprite.

    screenshot
    screenshot
  • Add code to your gate, to make it spin slowly forever.

  • Test out your game. You should now have a spinning gate that you must avoid.

    screenshot
    screenshot

Save your project

Challenge: More obstacles!

Can you add more obstacles to your game? Here are some ideas:

  • You could add green slime to your backdrop, which slows the player down when they touch it. You can use a wait block to do this:
    wait (0.01) secs
screenshot
screenshot
  • You could add a moving object, like a log or a shark!
screenshot
screenshot

These blocks may help you:

    move (1) steps
    if on edge, bounce

If your new object isn’t brown, you’ll need to add to your boat code:

    if <  <touching color [#603C15]?> or <touching [shark v]?> > then
    end

Save your project

Challenge: More boats!

Can you turn your game into a race between 2 players?

  • Duplicate the boat, rename it ‘Player 2’ and change its colour.
screenshot
screenshot
  • Change Player 2’s starting position, by changing this code:
    go to x: (-190) y: (-150)
  • Delete the code that uses the mouse to control the boat:
    if < (distance to [mouse-pointer v]) > [5] > then
        point towards [mouse-pointer v]
        move (1) steps
    end

…and replace it with code to control the boat using the arrow keys.

This is the code you’ll need to move the boat forward:

    if < key [up arrow v] pressed? > then
        move (1) steps
    end

You’ll also need code to turn the boat when the left and right arrow keys are pressed.

Save your project

Challenge: More levels!

Can you create additional backdrops, and allow the player to choose between levels?

    when [space v] key pressed
    next backdrop

Save your project