In this assignment we will start to replicate the old video game Asteroids. You will write a program that has a space ship that can be controlled with the keyboard. You will need to write a Spaceship
class. Your Spaceship
class will extend the Floater
class, an abstract
class that represents all things that float in space.
An abstract
class is an "incomplete" class. It has abstract
methods--incomplete methods that have no body. When your class extends an abstract
class, you typically write the methods that are needed to "complete" the class. Note: To complete this assignment you will be writing two classes Spaceship
and Star
. Do not modify the Floater
class.
- Fork this repository.
- Open the program by opening
AsteroidsGame.pde
in Processing. - Uncomment the
extends floater
on Line 1 ofSpaceship.pde
- Complete the 10 abstract
set
andget
functions that theSpaceship
class inherits fromFloater
- Write the
Spaceship
constructor. Make sure you initialize all 9 of the inheritedprotected
member variables. You may find slides #1 - 58 on the Asteroids PowerPoint and the Spaceship design worksheet helpful. You may also find this sample Spaceship program helpful in understanding how theprotected Floater
variables affect the Spaceship's movement. - At the top of
AsteroidsGame.pde
, declare a variable of typeSpaceship
- Initialize the
Spaceship
as a new instance of the class - In
draw()
inAsteroidsGame.pde
call the Spaceship'sshow()
function - When you are happy with appearance of the Spaceship, add a
public void keyPressed()
function inAsteroidsGame.pde
- Write code in
keyPressed
that allows you to control the spaceship with the keyboard. You must include the ability to turn left, turn right, accelerate, and enter "hyperspace." (There is no requirement for any fancy visual effects, hyperspace just needs to stop the ship, and give it a new random position and direction.) - Add code to the
draw()
inAsteroidsGame.pde
tomove()
the Spaceship - Finish the
Stars
class inStars.pde
- Finally, add code to
AsteroidsGame.pde
that declares and initializes an instance of theStars
class to create a random number of stars in random positions - Note that for full credit, you MUST include instructions on how to operate your Spaceship in the
index.html
file - OPTIONAL: If you have extra time and are looking for a challenge, you might try to add an animation of "rockets" that appear from the back of the ship when you accelerate, simliar to the this sample Spaceship program. The best way to do this is to override
show()
by copying theshow()
function from Floater into your Spaceship class. Then add anif
statement in your Spaceshipshow()
function right afterendShape(CLOSE);
. If your rockets are firing, draw additional shapes just behind your Spaceship. You can sketch out the shapes on graph paper with the ship centered at (0,0) and pointing right. Theshow()
function will rotate and translate the rocket shapes to the correct position on the screen.
These steps are only a suggestion. Your Asteroids game doesn't have to work or act like any other. Have fun and be creative.
- Abstract classes are "unfinished"
- Abstract classes are one way that programmers can collaborate and divide up the work of a large program
- You're collaborating! Some of the work for the
Spaceship
class has already been done in theFloater
class. Don't change it! Your job is to extend theFloater
class to "build on top of it" to make aSpaceship
class. - To create the
Spaceship
class you need to write a constructor and finish the "unfinished"abstract
functions inFloater
.` - When you are sketching out your ship on the Spaceship design worksheet make sure the ship is centered at (0,0) and pointing to the right
- Don't declare any duplicate variables in your
Spaceship
class. You are inheriting all the variables you need fromFloater
- Make sure your constructor initializes all 9 of the
protected
variables it inherits fromFloater