This container class holds a spritevector with all the sprites, and keeps
the SpriteBullet and SpriteExplosion in separate arrays so we can conveniently
replace the oldest one when we want to make a new one.
Make a sound and get a blank bullet slot or the oldest
bullet slot and put a new bullet in there, aimed in your direction
and starting at your location.
First sets the centroid to be the average of the shape vertices,
then translatees the shape so that its centroid is at the origin,
then sets the radius value as the maximum distance from the origin to one
of the shape vertices.
At present this method is only used by the missile, but we might
consider letting the asteroids use it too! The boolean flag tells whether
to just menacingly aim yoursef (false) or to actually move this way (true).
Use this to convert between the real coordinates of the Sprite shape
polygons and the pixel-sized coordinates used in the shapetransform
by the draw function.
First use the loadThread to load the sounds, then set loadThread to null and
use a while loop on loopthread to repeatedly update the sprites and call repaint.
The ship update method rotates the ship if left or right cursor key is down,
Fires thrusters if up or down arrow key is down, calls advance and render,
counts down the hyperspace counter if ship is in hyperspace.