Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Clase Torreta Laser_________________________________________________________________________________
- package juego;
- import java.awt.Color;
- import entorno.Entorno;
- public class TorretaLaser {
- private double x, y;
- private double angulo;
- private int ancho;
- private int alto;
- private boolean vivo;
- private boolean dispara;
- public TorretaLaser() {
- this.x = -50;
- this.y = -50;
- this.angulo = 0;
- this.vivo = false;
- this.ancho = 50;
- this.alto = 50;
- this.dispara = false;
- }
- public int getAncho() {
- return ancho;
- }
- public void setAncho(int ancho) {
- this.ancho = ancho;
- }
- public int getAlto() {
- return alto;
- }
- public void setAlto(int alto) {
- this.alto = alto;
- }
- //dibujarlo
- public void dibujarse(Entorno entorno){
- entorno.dibujarRectangulo(this.x, this.y, this.ancho, this.alto,this.angulo, Color.yellow);
- }
- public void dispara(Entorno entorno){
- entorno.dibujarRectangulo(this.x, this.y, 2000, 10,0, Color.yellow);
- }
- public double getX() {
- return x;
- }
- public void setX(double x) {
- this.x = x;
- }
- public double getY() {
- return y;
- }
- public void setY(double y) {
- this.y = y;
- }
- public boolean isVivo() {
- return vivo;
- }
- public void setVivo(boolean vivo) {
- this.vivo = vivo;
- }
- public boolean getDispara() {
- return dispara;
- }
- public void setDispara(boolean dispara) {
- this.dispara = dispara;
- }
- }
- //metodo en clase Todo_arreglos_______________________________________________
- private TorretaLaser[] torretasLaser;
- public TorretaLaser[] getTorretasLaser() {
- return torretasLaser;
- }
- public void setTorretasLaser( TorretaLaser[] torretasLaser) {
- this.torretasLaser = torretasLaser;
- }
- public void Arr_TorretaLaser(int cantidad) {
- this.torretasLaser = new TorretaLaser[cantidad];
- for(int i=0;i<cantidad;i++){
- torretasLaser[i]= new TorretaLaser();
- } }
- //metodo en clase Coliiones_________________________________
- public void zombieChocaTorretaLaser(){ //devuelve true si el zombie toca a la torreta
- for (int i = 0; i < todo_Arreglos.getZombies().length; i++) {
- for (int j = 0; j < todo_Arreglos.getTorretasLaser().length; j++) {
- if ((distanciaZombieTorretaLaser(todo_Arreglos.getZombies()[i],todo_Arreglos.getTorretasLaser()[j]) <= todo_Arreglos.getTorretasLaser()[j].getAlto()/2+todo_Arreglos.getZombies()[i].getDiametro()/2)){
- todo_Arreglos.getTorretasLaser()[j].setVivo(false);
- todo_Arreglos.getTorretasLaser()[j].setX(-50);
- todo_Arreglos.getTorretasLaser()[j].setY(-50);
- todo_Arreglos.getZombies()[i].setX(-50);
- todo_Arreglos.getZombies()[i].setY(-50);
- todo_Arreglos.getZombies()[i].setVivo(false);
- }
- }
- }
- }
- static double distanciaZombieTorretaLaser(Zombie z1, TorretaLaser t1){
- double distancia;
- distancia = Math.pow((Math.pow((z1.getX()-t1.getX()), 2)+Math.pow((z1.getY()-t1.getY()), 2)), 0.5);
- return distancia;
- }
- metodo en clase ingeniero ________________________________________________________
- if (entorno.estaPresionada(entorno.TECLA_SHIFT)){
- this.creaTorretaLaser = true;
- }
- implementacion en clase juego________________________________________________________
- package juego;
- //import java.util.Random;
- import java.awt.Color;
- import entorno.*;
- public class Juego_2 extends InterfaceJuego{
- private Entorno entorno;
- Ingeniero juan;
- Todo_Arreglos todo_arreglos;
- Colisiones colisiones;
- int delay;
- // otras variables del juego aqui
- int puntero;
- int contadorLaser = 0;
- Juego_2(){
- delay = 0;
- todo_arreglos = new Todo_Arreglos();
- todo_arreglos.Arr_Zombie(10);
- todo_arreglos.Arr_Torreta(30);
- todo_arreglos.Arr_TorretaLaser(30);
- todo_arreglos.Arr_Mina(100);
- juan = new Ingeniero();
- colisiones = new Colisiones(juan,todo_arreglos);
- entorno = new Entorno(this, "Aguanten los zombies vieja, no me importa nada!!", 800, 600);
- entorno.iniciar();
- puntero = 0;
- }
- /*
- * Durante el juego, el método tick() será ejecutado en cada instante y
- * por lo tanto es el método más importante de esta clase. Aquà se debe
- * actualizar el estado interno del juego para simular el paso del tiempo
- * (ver el enunciado del TP para mayor detalle).
- */
- public void tick(){
- delay++;
- if (juan.isCreaTorreta() == true && delay % 50 == 0 && puntero < todo_arreglos.getTorretas().length) {
- todo_arreglos.getTorretas()[puntero].setVivo(true);
- todo_arreglos.getTorretas()[puntero].setX(juan.getX());
- todo_arreglos.getTorretas()[puntero].setY(juan.getY());
- puntero++;
- juan.setCreaTorreta(false);
- }
- if (juan.isCreaTorretaLaser() == true && delay % 50 == 0 && puntero < todo_arreglos.getTorretasLaser().length) {
- todo_arreglos.getTorretasLaser()[puntero].setVivo(true);
- todo_arreglos.getTorretasLaser()[puntero].setX(juan.getX());
- todo_arreglos.getTorretasLaser()[puntero].setY(juan.getY());
- puntero++;
- juan.setCreaTorretaLaser(false);
- }
- for (int i = 0; i < todo_arreglos.getTorretas().length; i++) {
- if(todo_arreglos.getTorretas()[i].isVivo() == true ){
- todo_arreglos.getTorretas()[i].dibujarse(entorno);
- }
- }
- colisiones.zombieChocaTorreta();
- todo_arreglos.avanzarZombie();
- todo_arreglos.dibujarZombie(entorno);
- for (int i = 0; i < todo_arreglos.getTorretasLaser().length; i++) {
- if(todo_arreglos.getTorretasLaser()[i].isVivo() == true ){
- todo_arreglos.getTorretasLaser()[i].dibujarse(entorno);
- }
- }
- for (int i = 0; i < todo_arreglos.getTorretasLaser().length; i++) {
- if(todo_arreglos.getTorretasLaser()[i].getDispara()){
- todo_arreglos.getTorretasLaser()[i].dispara(entorno);
- }
- }
- for (int i = 0; i < todo_arreglos.getTorretasLaser().length; i++) {
- contadorLaser++;
- if(todo_arreglos.getTorretasLaser()[i].isVivo() == true ){
- todo_arreglos.getTorretasLaser()[i].dibujarse(entorno);
- if (contadorLaser>4000){
- todo_arreglos.getTorretasLaser()[i].setDispara(true);
- } if (contadorLaser>8000){
- todo_arreglos.getTorretasLaser()[i].setDispara(false);
- contadorLaser=0;
- }
- }
- }
- colisiones.zombieChocaTorretaLaser();
- todo_arreglos.avanzarZombie();
- todo_arreglos.dibujarZombie(entorno);
- if (colisiones.zombieMataIngeniero() == false){
- juan.dibujarse(entorno);
- }
- else{
- juan.setVivo(false);
- }
- entorno.cambiarFont("Arial", 18, Color.white);
- }
- static Zombie[] quitarMuerto(Zombie[] array){
- Zombie[] aux;
- int largo = 0;
- for (int i = 0; i < array.length; i++) {
- if (array[i].isVivo() == true) {
- largo++;
- }
- }
- aux = new Zombie[largo];
- int c = 0;
- for (int i = 0; i < array.length; i++) {
- if (array[i].isVivo() == true) {
- aux[c] = array[i];
- c++;
- }
- }
- return aux;
- }
- @SuppressWarnings("unused")
- public static void main(String[] args){
- Juego_2 juego = new Juego_2();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement