Gun.java :  » Java-2D » plar » plar » core » Java Open Source

Java Open Source » Java 2D » plar 
plar » plar » core » Gun.java
/*  
  PlAr is Platform Arena: a 2D multiplayer shooting game
  Copyright (c) 2010, Antonio Ragagnin <spocchio@gmail.com>
    All rights reserved.
    
    This file is licensed under the New BSD License.
*/


package plar.core;



import org.jbox2d.common.Vec2;

/**
 * the Gun is something that initialize a Bullet class 
 * 
 * @author Antonio Ragagnin
 *
 */
public abstract class Gun {

  public int ammo;
  public ElementPlayer owner;
    public int gunUseAmmo;
    public String gunName;
    public Gun() {
    super();
    ammo = 0;
  }
    
    
    public void fire()
    {
      if (ammo >= gunUseAmmo ) {
        createBullet();
    addAmmo(-gunUseAmmo);
  }
      
      
    }
    

public abstract void createBullet() ;


public void initializeShoot(ElementBullet shoot) {

  
  shoot.owner=owner;
  Vec2 shootPos = getShootRelativePosition();
  Vec2 shootSpeed = getShootRelativeSpeed();
  
  shootPos.x+= owner.body.getWorldCenter().x;
  shootPos.y+= owner.body.getWorldCenter().y;
  Common.info(7,"shooting direction "+D());
  shootSpeed.x+=D().x*shoot.speed;
  shootSpeed.y+=D().y*shoot.speed;
  shoot.setPosition(shootPos.x,shootPos.y);
  //shoot.applySpeed(shootSpeed); //Ok if shoot is kyn
  owner.level.addElement(shoot);
  shoot.applySpeed(shootSpeed); //Ok if shoot is dyn  
  
}
  public void addAmmo(int i) {
    ammo += i;
  }

  

  public Vec2 D()
  {
    if(owner.directionX==0 &&  owner.directionY==0)
    return new Vec2(1,0);
       else{
    Vec2 d=  new Vec2(owner.directionX,owner.directionY);
    return d;
    }
    
  }
  
  public Vec2 getShootRelativePosition() {
    return new Vec2(
    D().x * 2 * owner.getSize().x ,
    D().y * 2 * owner.getSize().y
    ); 
        
  }
  public Vec2 getShootRelativeSpeed() {
    return new Vec2(
    0,0
    ); 
        
  }


}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.