package com.me.invaders.charapters;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.audio.Sound;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.me.invaders.spaceInvaders;
public abstract class Shot { // Clase abstracta de los disparos
protected spaceInvaders invaders;
protected Texture texturaShot;
protected Sound shotSound, explosion;
protected Vector2 posicion;
protected float anchura, altura;
protected Rectangle bordes;
public Shot(spaceInvaders invaders, Vector2 posicion) {
this.invaders = invaders;
shotSound = invaders.getManager().get("data/shot.wav", Sound.class); // Añade el sonido de los disparos.
explosion = invaders.getManager().get("data/explosion.wav", Sound.class); // Añade el sonido de los aliens que mueren
this.posicion = posicion;
}
public void draw(SpriteBatch batch) {
batch.draw(texturaShot, posicion.x, posicion.y, anchura, altura);
}
public abstract void update(); // Método que implementará cada tipo de disparo.
public void disparoSonido() {
shotSound.play();
}
public abstract void alienMuerto(); // Dependerá del tipo de disparo que sea.
public void naveTocada() {
posicion.y = -100;
explosion.play(); // Sonido de explosion porque se ha perdido.
}
// Getters -----------------------------------
public Vector2 getPosicion() {
return posicion;
}
public float getAnchura() {
return anchura;
}
public float getAltura() {
return altura;
}
public Rectangle getBordes() {
return bordes;
}
}