public MapPanel(Map map, Game game) {
		this.game = game;
		// Scrolling movement timer
		timer.scheduleAtFixedRate(new TimerTask() {
			public void run() {
				if (mapImage_Scaled != null && viewPort != null
						&& mouseInsidePanel) {
					moveIfInBounds(checkIfInBounds(mousePoint));
				}
			}
		}, 1000, 25);

		// Adds mouse listeners to panel
		listener = new MapPanel_MouseListener(this);
		addMouseListener(listener);
		addMouseMotionListener(listener);

		// adds keylisteners to panel
		new MapPanel_KeyPress(this);

		// Creates the map
		this.map = map;
		// Read map image from file
		try {
			mapImage_Original = ImageIO.read(getClass().getResource(
					"/imgs/maps/" + map.getMapName() + ".jpg"));
		} catch (IOException e1) {
			System.out.println("Error getting map image!");
		}

		setScaledCellDimensionsPx(map.getCellDimensionsPx());
		scaleMap();

		animationTimer.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				changeCharacter();
				redrawMap();
				repaint();
			}
		});
		animationTimer.start();
	}