Hmmm... Looking at the Corona runtime some more, I think that I'm completely missing some steps.
I'm not rotating or scaling in pygame. I guess I got confused about that because the corona runtime apparently handles it internally with the image.x, image.y, image.scaleX, image.scaleY, and image.rotation variables on the texture?
Also, do I need to skeleton.flipY, or skeleton.flipX, considering that pygame is rendering from 0, 0 as the top-left corner? Seems like I need to set flipY?
Here's my debug code, which I'm not sure is correct:
debug = True
if debug:
for bone in self.bones:
lineX = bone.worldX
lineY = bone.worldY
lineRotation = -bone.worldRotation
if self.flipX:
lineXScale = -1
lineRotation = -lineRotation
else:
boneXScale = 1
if self.flipY:
lineYScale = -1
lineRotation = -lineRotation
else:
boneYScale = 1
lineColor = pygame.Color(255, 0, 0, 0)
pygame.draw.line(screen, lineColor, (0, 0), (x, y), 1)
circleX = int(bone.worldX)
circleY = int(-bone.worldY)
circleColor = (0, 255, 0, 0)
pygame.draw.circle(screen, circleColor, (circleX, circleY), 5, 1)