public void scale(double change) {
        double newScale = scale + change * scale;
        if (newScale <= 10.1 && newScale >= .2) {
            scale = newScale;
        } else {
            change = 0;
        }
        double halfChange = Math.abs(change / 2);
        moveMap((int) (((change > 0) ? (getWidth() * halfChange) : (-getWidth() * halfChange)) / scale),
                (int) (((change > 0) ? (getHeight() * halfChange) : (-getHeight() * halfChange)) / scale));
        getParent().repaint();
    }