package com.me.invaders.charapters; 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 class AlienBonus { // Nuevo alien que si se le dispara se obtiene una puntuaciĆ³n mayor private spaceInvaders invaders; private Texture texturaAlienBonus; private Vector2 posicion; private float anchura, altura; private Rectangle bordes; private float velocidad; public AlienBonus(spaceInvaders invaders, Vector2 posicion, float velocidad) { this.posicion = posicion; this.invaders = invaders; texturaAlienBonus = invaders.getManager().get("data/naveAlienBonus.png", Texture.class); this.anchura = texturaAlienBonus.getWidth(); this.altura = texturaAlienBonus.getHeight(); bordes = new Rectangle(posicion.x, posicion.y, anchura, altura); this.velocidad = velocidad; } public void draw(SpriteBatch batch) { // Dibuja la nave batch.draw(texturaAlienBonus, posicion.x, posicion.y, anchura, altura); } public void update() { posicion.x = posicion.x + velocidad; // Actualizamos los bordes (la anchura y altura ya se definen en el constructor de Entidad) bordes.x = posicion.x; } public boolean Muerto(Shot disparo) { return colisiona(bordes, disparo.getBordes()); } private boolean colisiona(Rectangle a, Rectangle b) { return a.overlaps(b); // la funcion overlaps nos devuelve verdadero si dos rectangulos se solapan. } // Getters ----------------------------------- public Vector2 getPosicion() { return posicion; } public float getAnchura() { return anchura; } public float getAltura() { return altura; } public Rectangle getBordes() { return bordes; } }