Scratch Game
Expert
45 mins
120 points
What you need:
• Computer/laptop

# Sea Battle - Part 2

In this project we make a game where you captain a ship and battle against submarines and planes! This is part two of this project.

### 1 - Complete part 1 of this project

In a separate lesson you should have completed part 1 of this project. Open your project in Scratch and continue to the next step in this lesson.

Or if you wish you can use this starter project that has part 1 completed.

### 2 - Add 'score' and 'lives' variables

We need to create 2 more variables to store our score and lives. Create the following variables:

• 'score' will store our score
• 'lives' will store how many lives we have left

Once you've created these new variables we can set their values for the start of the game. Add in the two new blocks under the when I receive [start] block in the battleship sprite:

when I receive [start v]// add them under here set [lives v] to (3)//start off with 3 lives set [score v] to (0)//set score to 0 at the start go to x (0) y (46)

### 3 - Score a point

Now let's add 1 to your score each time you hit a submarine.

In the submarine sprite, find the 'if touching my torpedo' code block and add the change [score] by 1  block into it.

if < touching (my torpedo v) > then // find this block change [score v] by (1)// add this new block wait (.2) seconds delete this clone end

Once you've added this block in, test that it works by playing the game. Each time you hit a submarine your score should go up by 1.

### 4 - Lose a life

Next add some code so you lose a life each time you get hit by an enemy torpedo.

Add the following new 'if then' group of blocks inside the forever block in the battleship sprite.

when I receive [start v] go to x (0) y (46) point in direction (90) switch costume to (battleship v) show forever if < key (right arrow v) pressed?> then change x by (5) end if < key (left arrow v) pressed?> then change x by (-5) end if < touching [enemy torpedo v] ? > then // add in these new blocks change [lives v] by (-1)//lose a life end end

Test that this works before moving onto the next step.

### 5 - Game over

Finally add the following code finish the game when you've no lives left.

Again add the following new 'if then' group of blocks inside the forever block in the battleship sprite.

when I receive [start v] go to x (0) y (46) point in direction (90) switch costume to (battleship v) show forever if < key (right arrow v) pressed?> then change x by (5) end if < key (left arrow v) pressed?> then change x by (-5) end if < touching [enemy torpedo v] ? > then change [lives v] by (-1) end if < (lives) < (1) > then // add in these new blocks hide switch backdrop to (game over v) broadcast (gameover v) end end