Class GameController

java.lang.Object
GameController

public class GameController
extends java.lang.Object
GameController.java - A class to control flow of asteroids game
  • Constructor Summary

    Constructors 
    Constructor Description
    GameController()
    Constructor initializes arraylists to hold game objects, as well as score and lives
  • Method Summary

    Modifier and Type Method Description
    void addAlien​(Alien alien)
    Add an alien spaceship to the game
    void addAlienBullet​(Bullet bullet)
    Add an alien bullet to game when alien shoots
    void addAsteroids​(BigAsteroid[] asteroidsToAdd)
    Add multiple asteroids to game This method takes advantage of polymorphism to add big, medium, and small asteroids as both medium and small asteroids inherit from big asteroid class so can be treated as the same data type
    void addBullet​(Bullet bullet)
    Add a bullet to game when player shoots
    void addGameFrame​(GameFrame gameFrame)
    Gives game controller access to game frame
    void addPlayer​(Player player)
    Add player to game window
    void endGame()
    Execute ending game procedures
    void exitGame()
    Execute exit game procedures This method involves text-file output
    java.awt.Image getAlienAnimation()
    Returns alien spaceship animation sprite
    java.awt.Image getAsteroidDestroyedImage()
    Returns asteroid destroy animation
    java.awt.image.BufferedImage getBigAsteroidImage()
    Returns big asteroid sprite
    java.awt.image.BufferedImage getBulletImage()
    Returns bullet sprite
    javax.swing.ImageIcon getExitButtonImage()
    Returns exit button image
    int getHighscore()
    Return current highscore
    java.awt.image.BufferedImage getMediumAsteroidImage()
    Returns medium asteroid sprite
    Player getPlayer()  
    java.awt.Image getPlayerDestroyedImage()
    Returns player destroyed animation
    java.awt.image.BufferedImage getPlayerImage()
    Returns player sprite
    java.awt.image.BufferedImage getSmallAsteroidImage()
    Returns small asteroid sprite
    javax.swing.ImageIcon getStartButtonImage()
    Returns start button image
    void loadHighscore()
    Load current highscore from file
    void loadImages()
    Load images for game object sprites
    void removeAlien​(Alien alien)  
    void removeAsteroid​(BigAsteroid asteroid)
    Remove an asteroid from the game when it is destroyed This method takes advantage of polymorphism to remove big, medium, and small asteroids as both medium and small asteroids inherit from big asteroid class so can be treated as the same data type
    void removeBullet​(Bullet bullet)
    Remove a bullet from game when it is destroyed
    void removePlayer()
    Remove a player from the screen when ship is destroyed
    void returnToMenu()
    Tells game window to set up menu and updates highscore
    void startAlienTimer()  
    void startAsteroidTimer()
    Starts timer that adds new asteroids to game periodically
    void startGame()
    Tells window to set up game window and sets up all game pieces
    void startGameTimer()
    Start timer to control game from frame to frame

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • GameController

      public GameController()
      Constructor initializes arraylists to hold game objects, as well as score and lives
  • Method Details

    • loadImages

      public void loadImages() throws java.io.IOException
      Load images for game object sprites
      Throws:
      java.io.IOException - if any images are absent
    • loadHighscore

      public void loadHighscore() throws java.io.IOException
      Load current highscore from file
      Throws:
      java.io.IOException - if no file is present This method implements text file I/O Known exploit: Text file is unsecure and easy to edit
    • getHighscore

      public int getHighscore()
      Return current highscore
      Returns:
      Highscore
    • getPlayerImage

      public java.awt.image.BufferedImage getPlayerImage()
      Returns player sprite
      Returns:
      Player sprite
    • getPlayerDestroyedImage

      public java.awt.Image getPlayerDestroyedImage()
      Returns player destroyed animation
      Returns:
      Player destroyed animation
    • getBulletImage

      public java.awt.image.BufferedImage getBulletImage()
      Returns bullet sprite
      Returns:
      Bullet sprite
    • getBigAsteroidImage

      public java.awt.image.BufferedImage getBigAsteroidImage()
      Returns big asteroid sprite
      Returns:
      Big asteroid sprite
    • getMediumAsteroidImage

      public java.awt.image.BufferedImage getMediumAsteroidImage()
      Returns medium asteroid sprite
      Returns:
      Medium asteroid sprite
    • getSmallAsteroidImage

      public java.awt.image.BufferedImage getSmallAsteroidImage()
      Returns small asteroid sprite
      Returns:
      Small asteroid sprite
    • getAsteroidDestroyedImage

      public java.awt.Image getAsteroidDestroyedImage()
      Returns asteroid destroy animation
      Returns:
      Asteroid destroy animation
    • getAlienAnimation

      public java.awt.Image getAlienAnimation()
      Returns alien spaceship animation sprite
      Returns:
      Alien spaceship animation
    • getStartButtonImage

      public javax.swing.ImageIcon getStartButtonImage()
      Returns start button image
      Returns:
      Start button image
    • getExitButtonImage

      public javax.swing.ImageIcon getExitButtonImage()
      Returns exit button image
      Returns:
      Exit button image
    • addGameFrame

      public void addGameFrame​(GameFrame gameFrame)
      Gives game controller access to game frame
      Parameters:
      gameFrame - Game frame generating game window
    • addBullet

      public void addBullet​(Bullet bullet)
      Add a bullet to game when player shoots
      Parameters:
      bullet - Bullet to be added
    • addAlienBullet

      public void addAlienBullet​(Bullet bullet)
      Add an alien bullet to game when alien shoots
      Parameters:
      bullet - Bullet to be added
    • addAlien

      public void addAlien​(Alien alien)
      Add an alien spaceship to the game
      Parameters:
      alien - Bullet to be added
    • removeBullet

      public void removeBullet​(Bullet bullet)
      Remove a bullet from game when it is destroyed
      Parameters:
      bullet - Bullet to be removed
    • removeAsteroid

      public void removeAsteroid​(BigAsteroid asteroid)
      Remove an asteroid from the game when it is destroyed This method takes advantage of polymorphism to remove big, medium, and small asteroids as both medium and small asteroids inherit from big asteroid class so can be treated as the same data type
      Parameters:
      asteroid - Asteroid to be removed
    • addAsteroids

      public void addAsteroids​(BigAsteroid[] asteroidsToAdd)
      Add multiple asteroids to game This method takes advantage of polymorphism to add big, medium, and small asteroids as both medium and small asteroids inherit from big asteroid class so can be treated as the same data type
      Parameters:
      asteroidsToAdd - Array of asterodis to be added
    • addPlayer

      public void addPlayer​(Player player)
      Add player to game window
      Parameters:
      player - Player object to be added
    • removePlayer

      public void removePlayer()
      Remove a player from the screen when ship is destroyed
    • removeAlien

      public void removeAlien​(Alien alien)
    • getPlayer

      public Player getPlayer()
    • startGameTimer

      public void startGameTimer()
      Start timer to control game from frame to frame
    • startAsteroidTimer

      public void startAsteroidTimer()
      Starts timer that adds new asteroids to game periodically
    • startAlienTimer

      public void startAlienTimer()
    • startGame

      public void startGame()
      Tells window to set up game window and sets up all game pieces
    • endGame

      public void endGame()
      Execute ending game procedures
    • returnToMenu

      public void returnToMenu()
      Tells game window to set up menu and updates highscore
    • exitGame

      public void exitGame()
      Execute exit game procedures This method involves text-file output