public void update() {
        steps--;

        float newX, newY;
        float percentage = ((float) steps / (float) maxSteps);

        width = width * percentage;
        height = height * percentage;
        newX = startX - ((int) width / 2);
        newY = startY + (endY - startY) - ((endY - startY) * percentage);

        mapX = (int) newX;
        mapY = (int) newY;

        if (steps <= 0 || mapY >= endY) {
            isDirty = true;
        }
    }