Description:
This is a demo Asteroids game I made in Java. It shows most of the features, including enemies, homing enemies, allies and different types of missiles. 99% of this game was made years ago, since then I've only tweaked it.
Objects shown
Bullet: destroys enemies and small rocks. breaks apart large and medium rocks. (yellow)
Missile: destroys any it comes in contact with. (green)
Guided Missile: locks onto an enemy or rock and chases it, also draws a cross hair over its target. same effectiveness as a bullet. (cyan)
Nuclear Missile: annihilates anything in a certain radius upon impact. (flashes red and white)
Mine: sits in place rotating, has the same effect as a bullet. (also yellow)
Rock: yields up to 2 of the next smallest size when struck, except the smallest. (gray)
Enemy: they fly in random paths, basically a wandering kamikaze. (red)
Chase Enemy: They lock onto the player and chase him down. both types of enemies can be set to fire bullets and missiles. (lighter red)
Ally: they are spawned in a random spot every certain about of points you get. they assist by shooting random missiles, g missiles and bullets. they are limited on missiles, similar to enemies. (yellow triangle)
Power ups
Bullet: 100 bullets spray out in a circle shape.
Missile: 90 missiles fan out like a wave.
Guided Missile: 90 of them are ejected similar to the previous.
Mine: 120 mines are laid out around the player making a shield of sorts. (not shown)
Ghost: allows the player to be immune to all attacks for a limited amount of time. (useless in cheat mode)
Other features
-Pause
-Toggle: sound, background, stroke, fill.
-Cheat mode
--Invulnerable, unlimited ammo, and/or "superman" where any and all enemies are destroyed on contact with the ship
-An angle reader that is inaccurate. I don't remember why.
My code could benefit from a tune up to make it more efficient, but I'm way too lazy.
The main class has 2293 lines.
Absolute total lines of code: 5601. About 500 lines consisted of unused features in my Canvas class, and approx, 150 lines of code I did not write myself.
Lets see, I don't think I forgot anything.
Please comment and tell me your thoughts.
|