Android Open Source - libgdx-demo-pax-britannica Fighter






From Project

Back to project page libgdx-demo-pax-britannica.

License

The source code is released under:

Copyright (c) 2010 Ben Abraham, Renaud B?dard, Henk Boom, Daniel Burton, Matthew Gallant Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated ...

If you think the Android project libgdx-demo-pax-britannica 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 de.swagner.paxbritannica.fighter;
/*from  w  ww .j a v a 2 s.  c om*/
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.math.Vector2;

import de.swagner.paxbritannica.GameInstance;
import de.swagner.paxbritannica.Resources;
import de.swagner.paxbritannica.Ship;

public class Fighter extends Ship {

  private float shotCooldownTime = 6f;
  private float shotCapacity = 5f;
  private float shotReloadRate = 1f;

  private float shots = shotCapacity;
  private float cooldown = 0;
  float delta;

  public FighterAI ai = new FighterAI(this);

  public Fighter(int id, Vector2 position, Vector2 facing) {
    super(id, position, facing);

    turnSpeed = 120f;
    accel = 120.0f;
    hitPoints = 40;
    
    switch (id) {
    case 1:
      this.set(Resources.getInstance().fighterP1);
      break;
    case 2:
      this.set(Resources.getInstance().fighterP2);
      break;
    case 3:
      this.set(Resources.getInstance().fighterP3);
      break;
    default:
      this.set(Resources.getInstance().fighterP4);
      break;
    }
    this.setOrigin(this.getWidth()/2, this.getHeight()/2);
  }

  @Override
  public void draw(Batch batch) {
    delta = Math.min(0.06f, Gdx.graphics.getDeltaTime());
    
    ai.update();

    cooldown = Math.max(0, cooldown - delta*50f);
    shots = Math.min(shots + (shotReloadRate * Gdx.graphics.getDeltaTime()), shotCapacity);

    super.draw(batch);
  }

  public boolean isEmpty() {
    return shots < 1;
  }

  public boolean isReloaded() {
    return shots == shotCapacity;
  }

  public boolean isCooledDown() {
    return cooldown == 0;
  }

  public boolean isReadyToShoot() {
    return isCooledDown() && !isEmpty();
  }

  public void shoot() {
    if (cooldown == 0 && shots >= 1) {
      shots -= 1;
      cooldown = shotCooldownTime;

      GameInstance.getInstance().bullets.add(new Laser(id,collisionCenter, facing));
    }
  }

}




Java Source Code List

de.swagner.paxbritannica.Bullet.java
de.swagner.paxbritannica.Collision.java
de.swagner.paxbritannica.Constants.java
de.swagner.paxbritannica.DefaultScreen.java
de.swagner.paxbritannica.GameInstance.java
de.swagner.paxbritannica.GameScreen.java
de.swagner.paxbritannica.IOSLauncher.java
de.swagner.paxbritannica.PaxBritannica.java
de.swagner.paxbritannica.Resources.java
de.swagner.paxbritannica.Ship.java
de.swagner.paxbritannica.Targeting.java
de.swagner.paxbritannica.android.AndroidLauncher.java
de.swagner.paxbritannica.background.BackgroundFXRenderer.java
de.swagner.paxbritannica.background.Debris.java
de.swagner.paxbritannica.background.Fish.java
de.swagner.paxbritannica.bomber.Bomb.java
de.swagner.paxbritannica.bomber.BomberAI.java
de.swagner.paxbritannica.bomber.Bomber.java
de.swagner.paxbritannica.client.HtmlLauncher.java
de.swagner.paxbritannica.desktop.DesktopLauncher.java
de.swagner.paxbritannica.factory.EasyEnemyProduction.java
de.swagner.paxbritannica.factory.FactoryProduction.java
de.swagner.paxbritannica.factory.HardEnemyProduction.java
de.swagner.paxbritannica.factory.MediumEnemyProduction.java
de.swagner.paxbritannica.factory.PlayerProduction.java
de.swagner.paxbritannica.factory.Production.java
de.swagner.paxbritannica.fighter.FighterAI.java
de.swagner.paxbritannica.fighter.Fighter.java
de.swagner.paxbritannica.fighter.Laser.java
de.swagner.paxbritannica.frigate.FrigateAI.java
de.swagner.paxbritannica.frigate.Frigate.java
de.swagner.paxbritannica.frigate.MissileAI.java
de.swagner.paxbritannica.frigate.Missile.java
de.swagner.paxbritannica.help.Help.java
de.swagner.paxbritannica.mainmenu.Countdown.java
de.swagner.paxbritannica.mainmenu.FactorySelector.java
de.swagner.paxbritannica.mainmenu.MainMenu.java
de.swagner.paxbritannica.particlesystem.BigBubbleParticleEmitter.java
de.swagner.paxbritannica.particlesystem.BubbleParticleEmitter.java
de.swagner.paxbritannica.particlesystem.ExplosionParticleEmitter.java
de.swagner.paxbritannica.particlesystem.ParticleEmitter.java
de.swagner.paxbritannica.particlesystem.Particle.java
de.swagner.paxbritannica.particlesystem.SparkParticleEmitter.java
de.swagner.paxbritannica.settings.Settings.java