Skip to content

athielk/Color_Wars

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

COLOR WARS README CS48 Project for W16 Domenic Dipeppe, Andrew Huang, Jackey Lau, Alex Thielk

How to Play:

  • Use the build.xml -- Go into /Color_Wars/Color Wars/ directory -- There will be a file build.xml in that directory --- Use command "ant run" to run --- Use command "ant compile" to compile --- Use command "ant clean" to clean build --- Use command "ant test" to run unit tests

Gameplay:

  • Objective: To destroy all colorful shapes on screen and achieve a high score. The game will continue to generate random enemies until the Player dies.

  • The user will control a black spaces ship and must shoot the enemies to destroy them -- Use the "W" "A" "S" "D" keys on the keyboard to move up, left, down, right respectively -- The space ship will automatically fire towards the cursor, which is a reticle during game. -- You must use "Q" and "E" to shift through your different projectiles. This is important because your projectiles can only hurt an enemy if they are the same color.

  • Enemies are color circles, squares, and triangles. These enemies come in four colors and can only be hurt if they are shot with the same color. -- Circles will always avoid the player and shoot projectiles. -- Squares can teleport, and are meant to block the player's movement, but they will never teleport on the player. Furthermore, if a Player collides with them, they will do damage equivalent to how much HP the player has. -- Triangles will always move towards the player, attempting to crash into them.

  • All of these objects have health, and will be destroyed if their health reaches 0. The object will flicker white if hurt.

  • If the user is destroyed, the game will end

Development:

The following describe the folders in "src" & resources such as music and images are in "rec"

src components:

Framework

  • Game.java hosts the JFrame and chooses which JPanel to display (Map, Main Menu, Leaderboard)
  • Map.java is the JPanel for the game. It generate and take action listeners for the Player and Enemies
  • Leaderboard.java needs to be implemented
  • MainMenu.java is a JPanel that the user can use to play the game or check out the leaderboard
  • CustomButton this class overloads JButton and is essentially an invisble box that is meant to overlay its background.
  • GameOver.java this class also overloads JPanel and displays the GameOver screen.
  • HighScores.java this class implements serialazable and handles manipulating the HighScores.ser. Also creates a dialog box if the user creates a new high score
  • Hub.java is a class for the "Heads Up Display" in Map.java, essentially lets the user know its HP, score and what wave it is on
  • Instructions.java this class implements JPanel and displays the instructions.
  • Leaderboard.java this class implements JPanel and is used to display the highscores the user creates by reading from the HighScores.ser
  • Sound.java this class that handles the music. Has methods such as load and play.

Characters

  • GameObject.java has core methods for all objects and is the base class for player, enemy and projectile
  • Player.java creates a class for the player to have various methods such as shoot, move etc
  • Projectile.java is essentially an object that takes 4 inputs, (xStart,yStart,xEnd,yEnd) to calculate a line on which the projectile will move.
  • Projectiles.java (with an s at the end) is an array of projectiles. Currently, there are two Projectiles instances: one for the player, and one for circles.
  • Enemy.java is the base class for Square.java, Circle.java, and Triangle.java
  • Wave.java generates enemies

res components:

  • Various sounds, music and background images are stored here

About

CS48 Project for W16

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%