public JFrameTiroParabolico() {
        //System.out.println("Entro Init");
        nombreArchivo = "Puntaje.txt";
        vec = new Vector<String> ();
        
        //Imagen de Instrucciones
        URL iURL = this.getClass().getResource("images/instrucciones.png");
        background_instr = Toolkit.getDefaultToolkit().getImage(iURL);
        
        //Imagen de pausa
        URL pURL = this.getClass().getResource("images/pausa.png");
        imgPause = Toolkit.getDefaultToolkit().getImage(pURL);    //definir el Image de la imagen de background
        
        //Caracteristicas del Applet
        URL bURL = this.getClass().getResource("images/background_1.jpg");
        background = Toolkit.getDefaultToolkit().getImage(bURL);    //definir el Image de la imagen de background
        setBackground (black);  //color de fondo del applet
        setSize(ANCHO, ALTO);   //dimensiones del applet
        
        //Variables
        direccion = 0;       //inicia detenido
        pausa = false;      //booleano para saber si tiene pausa
        suena = true;       //booleano para saber si suena o no suena
        save = false;       //booleano para salvar el juego
        load = false;       //booleano para cargar el juego
        clickOro = false;   //inicia sin darle click al objeto a lanzar
        instrucciones = false; //booleano para mostrar instrucciones
        score = 0;  //inicia score en 0
        buenoMov = false;   //el bueno inicia sin moverse
        movDespMouse = true;
        dirAntDMouse = 0;
        mensDESAPARECE = false;
        contVDesap = 0;
        vidas = 5;    // Le asignamos un valor inicial al vidas
        borde = new SoundClip("sounds/Splat.wav");  //sonido bad (no cacha)
        cBueno = new SoundClip("sounds/munch.wav"); //sonido good (cacha)
        velocidadDragon = 6;    //velocidad inicial del dragon
        gameover = false;   //el juego inicialmente no tiene gameover
        auxvidas = 0;   //contador de lanzadas y chocadas en bordejframe en 0
        
        //Velocidades Tiro Parabolico
        Vx = 5 + (int) (Math.random() * 5);
        Vy = -5 + (int) (Math.random() * 5);
        contVy = 0;
        
        
        /*
        grv = 9.78;
        do {
        Teta = 45 + (int) (Math.random() * 45); // Angulo en el que se va a lanzar el objeto entre 45 y 90
        Vo = 1 + (int) (Math.random() * 100);   //Velocidad Inicial del Objeto entre 10 y 20
        Vx = Vo * cos(Teta);
        Vy = Vo * sin(Teta);
        Rmax = (Vo * Vo * sin(2*Teta))/grv;
        tiempo = (Vo * sin(Teta))/grv;
        System.out.println("Teta="+Teta+" Vo="+Vo+" Vx/Vy="+Vx+"/"+Vy+" Rmax="+Rmax+" thmax="+tiempo);
        } while (Rmax > getWidth() | Rmax < (getWidth()/2) | Vx <= 0);
        */
        
        //Adds
        addKeyListener(this);   //Implementa Key Listener    
        addMouseListener(this); //Implementa Mouse Listener
        addMouseMotionListener(this);   //implementa Mouse Motion Listener
        

        //Personajes  
        //Objeto que se lanza
        oro = new Gold(0, 0);
        oro.setPosY(ALTO - oro.getAlto());
        
        //Objeto que cacha
        dragon = new Dragon ((getWidth() / 2) + (getWidth() / 4),getHeight());
                
                //**Start
                // Declaras un hilo
		Thread th = new Thread (this);
		// Empieza el hilo
		th.start ();
	}