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.
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.
We need to create 2 more variables to store our score and lives. Create the following variables:
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)
In the Variables palette, create a new variable by clicking the 'Make a Variable' button.
Once you click this button a box will appear asking what you want to call your variable. Give it a name that reminds you what you will be using it for. For example, if you wanted to keep track of your score in a game, you would create a variable called 'score'.
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.
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.
Since your tablet or iPad doesn’t have a physical keyboard, you’ll use on-screen buttons to complete this task. Wherever the instructions in this lesson mention pressing a key, you’ll need to tap a button on the screen instead. So, while your steps are a little different, you’ll still be able to make everything happen in your project.
So for example, instead of doing either of these:
when [left arrow v] key pressed
move (10) steps
if < key [left arrow v] pressed? > then
move (10) steps
end
You need to add an on-screen button (like an arrow sprite) and use this code:
when this sprite clicked
move (10) steps
Now, just tap the button on the screen to perform the same action!
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
Since your tablet or iPad doesn’t have a physical keyboard, you’ll use on-screen buttons to complete this task. Wherever the instructions in this lesson mention pressing a key, you’ll need to tap a button on the screen instead. So, while your steps are a little different, you’ll still be able to make everything happen in your project.
So for example, instead of doing either of these:
when [left arrow v] key pressed
move (10) steps
if < key [left arrow v] pressed? > then
move (10) steps
end
You need to add an on-screen button (like an arrow sprite) and use this code:
when this sprite clicked
move (10) steps
Now, just tap the button on the screen to perform the same action!