@Override
    public void paint(Graphics g){
        super.paint(g); 
        final Graphics2D g2d = (Graphics2D) g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);     
        //g2d.drawImage(fondo, 0, 0, (int)getSize().getWidth(), (int)getSize().getHeight(),null);
        int x = (getWidth() - fondoDecorador.getWidth(null)) / 2;
        int y = (getHeight() - fondoDecorador.getHeight(null)) / 2;   
        
        //pintamos el fondo (centrado)
        g2d.drawImage(fondoDecorador, x, y, null); 
        //ajustamos el ancho y el alto de la pantalla
        Partida.Pantalla pantalla = Partida.getPantalla();
        pantalla.setWidth(getWidth()-pantalla.getX()*2);
        pantalla.setHeigth(getHeight()-70);
        
        Partida.Estado estadoPartida = partida.getEstado();
        
        // JUGANDO
        if(estadoPartida.equals(Partida.Estado.JUGANDO)){            
//            System.out.println("Decorador.paint()> estadoJuego=>JUGANDO");
            
            partida.paint(g2d); //pintamos la pantalla
            
        }
        // PAUSADO
        else if(estadoPartida.equals(Partida.Estado.PAUSADO)){
//            System.out.println("Decorador.paint()> estadoJuego=>PAUSADO");
            g2d.setFont(new Font("Arial", Font.PLAIN, 35));
            g2d.setColor(Color.CYAN);
            String s = "PULSA 'ENTER' PARA CONTINUAR";
            g2d.drawString(s, pantalla.getWidth()/2-125, pantalla.getHeigth()/2);

            partida.paint(g2d);
            
        }
        // PREPARADO
        else if(estadoPartida.equals(Partida.Estado.PREPARADO)){
//            System.out.println("Decorador.paint()> estadoJuego=>PREPARADO");
            g2d.setFont(new Font("Arial", Font.PLAIN, 35));                            
            g2d.setColor(Color.BLACK);
            String s = "PREPARADO...";
            g2d.drawString(s, pantalla.getWidth()/2+32, pantalla.getHeigth()/2);
            
        } 
        //CARGANDO
        else if(estadoPartida.equals(Partida.Estado.CARGANDO)){
//            System.out.println("Decorador.paint()> estadoJuego=>CARGANDO");
            g2d.setFont(new Font("Arial", Font.PLAIN, 35));                            
            g2d.setColor(Color.LIGHT_GRAY);
            String s = "CARGANDO...";
            g2d.drawString(s, pantalla.getWidth()/2+32, pantalla.getHeigth()/2);
            
        } 
        //PERDIDO
        else if(estadoPartida.equals(Partida.Estado.PERDIDO)){
//            System.out.println("Decorador.paint()> estadoJuego=>PERDIDO");
            partida.gameOver();
            
            g2d.setFont(new Font("Arial", Font.PLAIN, 35));                            
            g2d.setColor(Color.LIGHT_GRAY);
            String s = "YOU LOSE";
            g2d.drawString(s, pantalla.getWidth()/2+32, pantalla.getHeigth()/2);
            
            new Thread(new Runnable(){ 
                @Override
                public void run() {
                    main.getPrincipal().setVisible(true);
                } 
            }).start(); 
        } 
        //CAGADO
        else if(estadoPartida.equals(Partida.Estado.GANADO)){
            
            partida.win(); 
            
        }
        if(estadoPartida.equals(Partida.Estado.PREPARADO)){
            
        }else if(estadoPartida.equals(Partida.Estado.CARGANDO)){
            paintInfoInvasores(g2d);
            paintInfoNaves(g2d);
        } else {
            pintarRecursos(g2d);
        }
    }