@Override
  public void paintComponent(Graphics g) {
    int backgroundX, backgroundY;
    backgroundX = backgroundY = 0;

    Point p;
    p = house.player.getPosition();

    backgroundX = this.getWidth() / 2 - p.x;
    backgroundY = this.getHeight() / 2 - p.y;

    if (backgroundX > 0)
      backgroundX = 0;
    else if (backgroundX + background.getWidth() < this.getWidth())
      backgroundX -= backgroundX + background.getWidth() - this.getWidth();

    if (backgroundY > 0)
      backgroundY = 0;
    else if (backgroundY + background.getHeight() < this.getHeight())
      backgroundY -= backgroundY + background.getHeight() - this.getHeight();
    
    g.setClip(new Rectangle2D.Float(0, 0, this.getWidth(), this.getHeight()));
    
    g.drawImage(background, backgroundX, backgroundY, null);
    g.drawImage(characters, backgroundX, backgroundY, null);
    g.drawImage(lights, backgroundX, backgroundY, null);
    g.drawImage(HUD, 0, 0, null);
  }