Android Open Source - feup-lpoo-android-tower-defense Game Elements






From Project

Back to project page feup-lpoo-android-tower-defense.

License

The source code is released under:

MIT License

If you think the Android project feup-lpoo-android-tower-defense listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package pt.up.fe.lpoo.towerdefense;
//  ww w.  java2  s.  c o m
import java.util.ArrayList;
import java.util.PriorityQueue;

/**
 * This class contains game objects to be used for a level as well as other game variables such as the score,
 *  money and number of lives left
 *  
 * @author Joao Marinheiro
 * @author Luis Cleto
 */
public class GameElements {
  /** current amount of money the user has */
  public int currentBalance;
  /** current amount of lives the user has left */
  public int livesLeft;
  /** current score the user has achieved */
  public int curScore; 
  /** array with the enemies in the level */
  public ArrayList<Enemy> enemies;
  /** array with the defenses in the level */
  public ArrayList<DefenseObject> defenses;
  /** array with the projectiles in the level */
  public ArrayList<Projectile> projectiles;
  
  /**
   * Constructor for the GameElemnts class. Initializes the game variables
   * @param chosenLevel level being played
   */
  public GameElements(int chosenLevel){
    enemies = new ArrayList<Enemy>();
    defenses = new ArrayList<DefenseObject>();
    projectiles = new ArrayList<Projectile>();

    livesLeft = TowerDefenseGame.MAX_LIVES;
    curScore = 0;
    currentBalance = 100 + chosenLevel*50;
  }
  /**
   * Adds an enemy to the game elements
   * @param enemy Enemy to be added
   */
  public void addEnemy(Enemy enemy){
    enemies.add(enemy);
  }
  /**
   * Adds a defense to the game elements
   * @param def DefenseObject to be added
   */
  public void addDefense(DefenseObject def){
    defenses.add(def);
  }
  /**
   * Adds a projectile to the game elements
   * @param proj Projectile to be added
   */
  public void addProjectile(Projectile proj){
    projectiles.add(proj);
  }
  /**
   * Sorts the game elements into a priority queue and returns it for drawing
   * @return returns a priority queue with all the game objects to be drawn
   */
  public PriorityQueue<GameObj> getGameObjsForDrawing(){
    PriorityQueue<GameObj> queue = new PriorityQueue<GameObj>(Math.max(defenses.size()+enemies.size()+projectiles.size(),1));
    for(int i=0; i < defenses.size(); i++)
      queue.add(defenses.get(i));
    for(int i=0; i < enemies.size(); i++)
      queue.add(enemies.get(i));
    for(int i=0; i < projectiles.size(); i++)
      queue.add(projectiles.get(i));
    
    return queue;
  }
}




Java Source Code List

pt.up.fe.lpoo.framework.Audio.java
pt.up.fe.lpoo.framework.FileIO.java
pt.up.fe.lpoo.framework.Game.java
pt.up.fe.lpoo.framework.Graphics.java
pt.up.fe.lpoo.framework.Image.java
pt.up.fe.lpoo.framework.Input.java
pt.up.fe.lpoo.framework.Music.java
pt.up.fe.lpoo.framework.Pool.java
pt.up.fe.lpoo.framework.Screen.java
pt.up.fe.lpoo.framework.Sound.java
pt.up.fe.lpoo.framework.implementation.AndroidAudio.java
pt.up.fe.lpoo.framework.implementation.AndroidFastRenderView.java
pt.up.fe.lpoo.framework.implementation.AndroidFileIO.java
pt.up.fe.lpoo.framework.implementation.AndroidGame.java
pt.up.fe.lpoo.framework.implementation.AndroidGraphics.java
pt.up.fe.lpoo.framework.implementation.AndroidImage.java
pt.up.fe.lpoo.framework.implementation.AndroidInput.java
pt.up.fe.lpoo.framework.implementation.AndroidMusic.java
pt.up.fe.lpoo.framework.implementation.AndroidSound.java
pt.up.fe.lpoo.framework.implementation.MultiTouchHandler.java
pt.up.fe.lpoo.framework.implementation.SingleTouchHandler.java
pt.up.fe.lpoo.framework.implementation.TouchHandler.java
pt.up.fe.lpoo.towerdefense.Animation.java
pt.up.fe.lpoo.towerdefense.Assets.java
pt.up.fe.lpoo.towerdefense.BarricadeDefense.java
pt.up.fe.lpoo.towerdefense.BoulderProjectile.java
pt.up.fe.lpoo.towerdefense.BoulderTower.java
pt.up.fe.lpoo.towerdefense.BuildingOption.java
pt.up.fe.lpoo.towerdefense.DefenseObject.java
pt.up.fe.lpoo.towerdefense.DescriptionObject.java
pt.up.fe.lpoo.towerdefense.Enemy.java
pt.up.fe.lpoo.towerdefense.FreezeTower.java
pt.up.fe.lpoo.towerdefense.GameElements.java
pt.up.fe.lpoo.towerdefense.GameObj.java
pt.up.fe.lpoo.towerdefense.Golem.java
pt.up.fe.lpoo.towerdefense.InstructionsScreen.java
pt.up.fe.lpoo.towerdefense.LevelScreen.java
pt.up.fe.lpoo.towerdefense.LevelSelectionScreen.java
pt.up.fe.lpoo.towerdefense.LoadingScreen.java
pt.up.fe.lpoo.towerdefense.MainMenuScreen.java
pt.up.fe.lpoo.towerdefense.Messages.java
pt.up.fe.lpoo.towerdefense.MusicPlayer.java
pt.up.fe.lpoo.towerdefense.PathCluster.java
pt.up.fe.lpoo.towerdefense.PoisonTower.java
pt.up.fe.lpoo.towerdefense.Projectile.java
pt.up.fe.lpoo.towerdefense.Skull.java
pt.up.fe.lpoo.towerdefense.Slime.java
pt.up.fe.lpoo.towerdefense.SplashLoadingScreen.java
pt.up.fe.lpoo.towerdefense.StatusEffect.java
pt.up.fe.lpoo.towerdefense.TarPoolDefense.java
pt.up.fe.lpoo.towerdefense.TextParser.java
pt.up.fe.lpoo.towerdefense.Tile.java
pt.up.fe.lpoo.towerdefense.TowerDefenseGame.java
pt.up.fe.lpoo.towerdefense.TurretProjectile.java
pt.up.fe.lpoo.towerdefense.TurretTower.java
pt.up.fe.lpoo.towerdefense.Wave.java