@Override
	public void draw(Graphics2D g2d, ImageObserver imageObserver) {
		for (int y = 0; y < GameMap.HEIGHT; ++y) {
			for (int x = 0; x < GameMap.WIDTH; ++x) {
				GameTile tile = get(x, y);
				if (tile == GameTile.WALL) {
					wallSprite.setLocation(GameMap.getPoint(x, y));
					wallSprite.draw(g2d, imageObserver);
				} else if (tile == GameTile.FIRE) {
					fireSprite.setLocation(GameMap.getPoint(x, y));
					fireSprite.draw(g2d, imageObserver);
				} else if (tile == GameTile.BOMB) {
					bombSprite.setLocation(GameMap.getPoint(x, y));
					bombSprite.draw(g2d, imageObserver);
				} else if (tile == GameTile.BONUS_BOMB) {
					bonusBombSprite.setLocation(GameMap.getPoint(x, y));
					bonusBombSprite.draw(g2d, imageObserver);
				} else if (tile == GameTile.BONUS_FIRE) {
					bonusFireSprite.setLocation(GameMap.getPoint(x, y));
					bonusFireSprite.draw(g2d, imageObserver);
				} else if (tile == GameTile.BONUS_ROLLER) {
					bonusRollerSprite.setLocation(GameMap.getPoint(x, y));
					bonusRollerSprite.draw(g2d, imageObserver);
				}
			}
		}
		g2d.setColor(Color.RED);
		for (Integer id : players.keySet()) {
			PlayerSprite player = players.get(id);
			player.sprite.setLocation(player.position);
			player.sprite.draw(g2d, imageObserver);
		}
	}