In this project we make a game where you captain a ship and battle against submarines! This is part one of two parts of this project.
We've created a starter project that has some custom backdrops and sprites already setup. Open this starter project by clicking on the following link:
There are 3 backdrops included with this project, a 'title' backdrop to appear at the start of the game, a 'sea' backdrop to appear while you play the game and a 'game over' backdrop to appear when the game is finished.
Add the following code to the backdrop:
when green flag clicked
switch backdrop to (title v)
when I receive [start v]
switch backdrop to (sea v)
when I receive [gameover v]
switch backdrop to (game over v)
Messages are a great way to start a piece of code at a particular time. To create a new message follow these steps:
When the instructions screen is showing, we also want to display a Start button that will start the game when the user clicks on it.
Add the following code to the 'Button2' sprite:
when green flag clicked
show
when this sprite clicked
broadcast [start v]
hide
when I receive [gameover v]
show
Now we will setup the 'battleship' sprite for the start of the game and code it to move when you press the left and right arrows. Add the following code to the 'battleship' sprite:
when green flag clicked
set size to (50) %
hide
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
end
We're going to program the 'x' key to fire our torpedo when it is pressed. When fired, the torpedo will continually move down until it touches a submarine or the edge of the screen.
Add the following code to the 'my torpedo' sprite:
when [x v] key pressed
create clone of (myself v)
when I start as a clone
switch costume to (normal v)
go to (battleship v) // the torpedo needs to start at the same current location of your battleship
show
repeat until < touching (edge v)>
if < touching (submarine v)> then
switch costume to (hit v) // this is the explosion costume of the torpedo
wait (0.2) secs
delete this clone
end
change y by (-4) // move it down
end
delete this clone