If you set a sprite's image, and later draw to that image, the sprite will reflect the changes.
But if the sprite is set to a larger scale, it won't reflect those changes.
The ways I've found around this are to either quickly set the scale to 1 and then immediately back to 2, or change the image of the sprite and then change it back.
I came through a link and didn’t notice there are posts above the last one!
Just to answer the earlier question from @matt: markDirty seems to change rendering (without it, there are no indicated screen updates, with it, sprite’s area is getting rerendered), but the rendered image stays the same. You can try it with the examples from @hteumeuleu and me.
This is a tricky one. The problem is that scaled sprites are a convenience I added in the Lua wrapper and at the base level they're normal image-based sprites. When you call kScene:setScale(2) it takes the current image, scales it up 2x and sets that on the underlying sprite. Drawing into the pre-scaled image doesn't trigger a redraw because that logic is down in the base code. You can force a redraw with markDirty() but that just redraws the original image that was set. I'll add a check for changes to the original image in the scaled/rotated case, which should make this work as expected. Until then, you can do something to force a redraw of the scaled image, like:
Okay, fix is in for that. I wish I could say it'll be out soon, but I don't know when we'll be able to push the update. We screwed up and didn't keep the new code for Catalog separate from the 1.13.0 release, so we've created a QA nightmare.