package com.me.adventures.characters; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.me.adventures.main.AdventuresOfManuel; import com.me.adventures.main.Constant; public abstract class Proyectil extends ObjetoDelJuego{ protected static final int ABAJO = 0; protected static final int IZQUIERDA = 1; protected static final int DERECHA = 2; protected static final int ARRIBA = 3; protected int direccion; protected TextureRegion disparoAbajo, disparoArriba, disparoDerecha, disparoIzquierda, disparoDireccion; public Proyectil(AdventuresOfManuel adventures, Vector2 posicion) { super(adventures, posicion); } public void inicializaPosicion(Vector2 posicion, int direccion){ this.direccion = direccion; if(direccion == ABAJO) { this.posicion.x = posicion.x; this.posicion.y = posicion.y - 58; } if(direccion == ARRIBA) { this.posicion.x = posicion.x; this.posicion.y = posicion.y + 58; } if(direccion == DERECHA) { this.posicion.x = posicion.x + 58; this.posicion.y = posicion.y; } if(direccion == IZQUIERDA) { this.posicion.x = posicion.x - 58; this.posicion.y = posicion.y; } if(direccion == DERECHA) // Se verá de forma distinta dependiendo la dirección que se dispare disparoDireccion = disparoDerecha; else if(direccion == IZQUIERDA) disparoDireccion = disparoIzquierda; else if (direccion == ARRIBA) disparoDireccion = disparoArriba; else disparoDireccion = disparoAbajo; // Actualizar bordes bordes.x = posicion.x; bordes.y = posicion.y; } @Override public void draw(SpriteBatch batch) { batch.draw(disparoDireccion, posicion.x, posicion.y, bordes.height, bordes.width); } @Override public void update() { if(direccion == ABAJO) posicion.y -= Constant.BOLA_SPEED; if(direccion == ARRIBA) posicion.y += Constant.BOLA_SPEED; if(direccion == DERECHA) posicion.x += Constant.BOLA_SPEED; if(direccion == IZQUIERDA) posicion.x -= Constant.BOLA_SPEED; // Actualizar bordes bordes.x = posicion.x; bordes.y = posicion.y; } // Getters and Setters ------------------------------------------------------------------------ @Override public Vector2 getPosicion() { return posicion; } public void setPosicion(Vector2 posicion) { this.posicion = posicion; } @Override public Rectangle getBordes() { return bordes; } public void setBordes(Rectangle bordes) { this.bordes = bordes; } }