public boolean render(Graphics2D g) {
        if (isDestroyed)    // flag the thing trying to render this that this is marked for deletion and the caller ought to delete its reference to this.
            return false;

        if (semiTransparency == 1.0 || !isVisible)    // if the Sprite is invisible, we don't need to draw its image.
            return true;

        if (transformChanged) // update our image transform so that it's ready for rendering
            updateTransform();

        AffineTransform oldTrans = g.getTransform(); // save the Graphics context's original transform.

        AffineTransform curTrans = g.getTransform();
        curTrans.translate(this.x, this.y);
        curTrans.concatenate(this.transform);
        curTrans.translate(0 - fx, 0 - fy); // offset image using focus point.
        g.setTransform(curTrans);

        this.draw(g);

        g.setTransform(oldTrans);    // restore the Graphics context's original transform.

        return true;
    }