public Ventana(InterfazJuego tipoJuego, int AnchoVentana, int AltoVentana, int DiametroImagen, int NumeroEnemigos, int NumeroObstaculos, int NumeroLocos) throws IOException{
		//Creamos la ventana principal
		JFrame jf = new JFrame("Ventana Juego");
        jf.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
        });
        jf.setResizable(false);	

		INTERFAZJUEGO = tipoJuego;
		ANCHO_VENTANA = AnchoVentana;
		ALTO_VENTANA = AltoVentana;
		DIAMETRO_IMAGEN = DiametroImagen;
		NUMEROENEMIGOS = NumeroEnemigos;
		NUMEROBSTACULOS = NumeroObstaculos;
		NUMEROLOCOS = NumeroLocos;
		setPreferredSize(new Dimension(ANCHO_VENTANA,ALTO_VENTANA));
		game = new Juego(this, INTERFAZJUEGO);
		game.generarObjetosYPersonajes(NUMEROENEMIGOS,NUMEROBSTACULOS,NUMEROLOCOS);
		

		//Creamos el Listener de las teclas 
		
		pulsacion=false;
		addKeyListener(new KeyAdapter(){
			  public void keyPressed(KeyEvent e) {
				  pulsacion = true;
                  try {
					actualiza(e.getKeyCode(), true);
				} catch (IOException e1) {
					e1.printStackTrace();
				}
              }

              public void keyReleased(KeyEvent e) {
            	      pulsacion = false;
                  try {
					actualiza(e.getKeyCode(), false);
				} catch (IOException e1) {
					e1.printStackTrace();
				}
              }

              private void actualiza(int keyCode, boolean pressed) throws IOException {
                  switch (keyCode) {
                      case KeyEvent.VK_UP:
                          up = pressed;
                          break;
                      case KeyEvent.VK_DOWN:
                          down = pressed;
                          break;
                      case KeyEvent.VK_LEFT:
                          left = pressed;
                          break;
                      case KeyEvent.VK_RIGHT:
                          right = pressed;
                          break;
                      case KeyEvent.VK_ENTER:
                    	  	  game.cambiarTipo(new JuegoNieve());
                    	  	  break;
                      case KeyEvent.VK_ALT:
                	  	  	  game.cambiarTipo(new JuegoCueva());
                	  	      break;
                  }
              }
		});
		setFocusable(true);
		jf.setResizable(true);
        jf.getContentPane().add(this);
        jf.pack();
        jf.setVisible(true);
	}