Alright, Thank you for explaining it to me :) Now that I know whats happening I think I found a Solution. inside if my __init__ I added an extra variable “self.oldimage = self.image” Then inside of the rotateimage call, I have it set to: “self.image = pygame.transform.rotate (self.oldimage, -angle_degrees)” This way, it will call up the oldimage, and save to the new surface.