miércoles, 25 de noviembre de 2015

Clase Partida

package pacman;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.Color;
import javax.swing.ImageIcon;
import java.awt.Font;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Partida extends JFrame{

private Home vpri;
private static Pantalla pantalla;
private Timer timer;
//static boolean superFantasma=false;

/**
* Launch the application.
*//*
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Partida ventana = new Partida(vpri);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
*/
/**
* Create the application.
*/
public Partida() {

//Home h
//vpri=h;

pantalla=new Pantalla();

}

/**
* Initialize the contents of the frame.
*/

public static Pantalla getPantalla(){
return pantalla;
}


public void iniciar() {

timer = new Timer();
   TimerTask task = new TimerTask() {
    int timeout = 0;
    int tiempoFantasmaVerde=0;
    int tiempoFantasmaCian=0;
    int tiempoFantasmaNaranja=0;
    int tiempoFantasmaAmarillo=0;
    int tiempoPacman=0;
       public void run()
       {
        /* DIRECCIONES:
        * 1 - DERECHA
        * 2 - ARRIBA
        * 3 - IZQUIERDA
        * 4 - ABAJO
        */
       
        try {
        if(tiempoPacman==0){
        movimientoJugador.controlar(1, pantalla);//CONTROL MOVIMIENTO PACMAN
        if(controlarColisionesJugadores.getTransformacion(1)==1)
        tiempoPacman = timeout+8000;
        }
        else{
        if(tiempoPacman<timeout){
        tiempoPacman=0;
        controlarColisionesJugadores.resetTransformacion(1);
        pantalla.superFantasma=false;
        }
        else{
        movimientoJugador.controlar(1, pantalla);
        }
        }
} catch (IOException e) {
e.printStackTrace();
}
        if((timeout%20)==0 || timeout==0){//LOS FANTASMAS SE MUEVEN A LA MITAD DE LA VELOCIDAD DEL PACMAN
       
       
        try {
if(tiempoFantasmaVerde==0){//SI EL TIEMPO FANTASMA ESTA EN 0 PUEDE EMPEZAR A CONTROLAR LOS 2 SEGUNDOS
movimientoJugador.controlar(2, pantalla);
        if(controlarColisionesJugadores.getColision(2)==1)
        tiempoFantasmaVerde = timeout+2000;
        else if(controlarColisionesJugadores.getTransformacion(2)==1)
        tiempoFantasmaVerde = timeout+8000;
        }
        else{
        if(tiempoFantasmaVerde<timeout){
        tiempoFantasmaVerde=0;
        controlarColisionesJugadores.setColision(2);
        controlarColisionesJugadores.resetTransformacion(2);
        pantalla.superFantasma=false;
        }
        else{
        if(controlarColisionesJugadores.getTransformacion(2)==1)
        movimientoJugador.controlar(2, pantalla);
        }
        }

} catch (IOException e) {
e.printStackTrace();
}
       
       
        try {//CONTROL MOVIMIENTO Y TIEMPO DE ESPERA DEL FANTASMA CIAN
        if(tiempoFantasmaCian==0){//SI EL TIEMPO FANTASMA ESTA EN 0 PUEDE EMPEZAR A CONTROLAR LOS 2 SEGUNDOS
        movimientoJugador.controlar(3, pantalla);
        if(controlarColisionesJugadores.getColision(3)==1)
        tiempoFantasmaCian=timeout+2000;
        else if(controlarColisionesJugadores.getTransformacion(3)==1)
        tiempoFantasmaCian = timeout+8000;
        }
        else{
        if(tiempoFantasmaCian<timeout){
        tiempoFantasmaCian=0;
        controlarColisionesJugadores.setColision(3);
        controlarColisionesJugadores.resetTransformacion(3);
        pantalla.superFantasma=false;
        }
        else{
        if(controlarColisionesJugadores.getTransformacion(3)==1)
        movimientoJugador.controlar(3, pantalla);
        }
        }
} catch (IOException e) {
e.printStackTrace();
}
       
       
        try {//CONTROL MOVIMIENTO Y TIEMPO DE ESPERA DEL FANTASMA NARANJA
        if(tiempoFantasmaNaranja==0){//SI EL TIEMPO FANTASMA ESTA EN 0 PUEDE EMPEZAR A CONTROLAR LOS 2 SEGUNDOS
        movimientoJugador.controlar(4, pantalla);
        if(controlarColisionesJugadores.getColision(4)==1)
        tiempoFantasmaNaranja=timeout + 2000;
        else if(controlarColisionesJugadores.getTransformacion(4)==1)
        tiempoFantasmaNaranja = timeout+8000;
        }
        else{
        if(tiempoFantasmaNaranja<timeout){
        tiempoFantasmaNaranja=0;
        controlarColisionesJugadores.setColision(4);
        controlarColisionesJugadores.resetTransformacion(4);
        pantalla.superFantasma=false;
        }
        else{
        if(controlarColisionesJugadores.getTransformacion(4)==1)
        movimientoJugador.controlar(4, pantalla);
        }
        }
} catch (IOException e) {
e.printStackTrace();
}
       
       
        try {//CONTROL MOVIMIENTO Y TIEMPO DE ESPERA DEL FANTASMA AMARILLO
        if(tiempoFantasmaAmarillo==0){//SI EL TIEMPO FANTASMA ESTA EN 0 PUEDE EMPEZAR A CONTROLAR LOS 2 SEGUNDOS
        movimientoJugador.controlar(5, pantalla);
        if(controlarColisionesJugadores.getColision(5)==1)
        tiempoFantasmaAmarillo=timeout + 2000;
        else if(controlarColisionesJugadores.getTransformacion(5)==1)
        tiempoFantasmaAmarillo = timeout+8000;
        }
        else{
        if(tiempoFantasmaAmarillo<timeout){
        tiempoFantasmaAmarillo=0;
        controlarColisionesJugadores.setColision(5);
        controlarColisionesJugadores.resetTransformacion(5);
        pantalla.superFantasma=false;
        }
        else{
        if(controlarColisionesJugadores.getTransformacion(5)==1)
        movimientoJugador.controlar(5, pantalla);
        }
        }
} catch (IOException e) {
e.printStackTrace();
}
        }
       
        timeout+=10;
       
        if (timeout >= 60000 || pantalla.comerBolitas(1)==0){
        timer.cancel();
       
        try {
ClienteServidor.enviarPuntajes();
} catch (IOException e) {
System.out.println("ERROR: no se pudo enviar el puntaje");
e.printStackTrace();
}
        }
       
       }
   };
   timer.scheduleAtFixedRate(task, 0, 10);//COMIENZA A EJECUTARSE EL TIMER, NO PARA NUNCA

}

}

No hay comentarios:

Publicar un comentario