Now that we have a functioning space ship, we'll add some asteroids to our game. To do that, we'll write an asteroid class that extends Floater
.
- Create a new
Asteroid.pde
file in yourAsteroidsGame
folder. One way to do this is in Processing is to open the AsteroidGame sketch you created in Part 1. Make sure that when you do this you have the most current sketch for AsteroidGame. Then, create a new tab calledAsteroid
using mixed case exactly as shown. This will create a newAsteroid.pde
file along with the previosly created AsteroidGame.pde in your sketch folder. - You can now write an
Asteroid
class thatextends Floater
in your Asteroid.pde file. You will need to write the following members and label them appropriately (public
orprivate
?):- a member variable to hold the speed of rotation for each asteroid
- a constructor to initialize all 10 variables (the speed of rotation plus the 9 inherited variables from
Floater
) - a
move()
method that alsoturn
s (rotates) each Asteroid at its own speed - "getter" (accessor) functions for
myCenterX
andmyCenterY
- On line 14 of
index.html
addAsteroid.pde
to the list of files indata-processing-sources
. The canvas tag should now look like<canvas id="AsteroidsGame" data-processing-sources="Asteroid.pde AsteroidsGame.pde Floater.pde Spaceship.pde Stars.pde"> </canvas>
. Now choose File | Save. - Now add just a single asteroid to your program. Start by just calling the Asteroid's
show()
function. Make sure you can see it and are happy with its shape before going to the next step. - Now add the code that moves and rotates the Asteroid
An array probably isn't the best way to keep track of a bunch of asteroids. Arrays have a fixed size. You can't easily add or remove asteroids from an array as they are destroyed or created. A better choice might be an ArrayList
. The ArrayList
class has a number of useful member methods:
boolean add(Object x)
void add(int index, Object element)
Object get(int index)
Object remove(int index)
Object set(int index, Object x)
int size()
- Create an
ArrayList
of typeAsteroid
. You may find the ArrayList slide presentation helpful. You will also find the Asteroids Project Part 2 Presentation very useful in completing this project. - Make sure you read and understand the information presented above thoroughly. Please schedule a 1-1 conference with me if you have any questions.
- Now we'll modify the program so that when our space ship strikes an asteroid, the asteroid is removed from the
ArrayList
. Everytime an asteroid moves find the distance between that asteroid and the ship. Use processing'sdist()
function to find the distance between that asteroid and the ship. If the distance is less than 20 (or whatever value is appropriate for your game) remove the asteroid from the ArrayList. Otherwise, move and rotate the asteroid normally - Upload all updated files to Github using the same process you have used previosly (drag and drop or edit in Github directly)
- Submit the same URL for your AsteroidsGame that you submitted for the previous assignment to new Google Classroom assignment for Asteroids Part 2.