I have a sprite that i want to rotate when i hit he left and right arrow but when i rotate it it moves a little bit. my code is shown bellow
class Ship(pygame.sprite.Sprite):
def __init__(self,color):
super().__init__()
self.image=pygame.image.load("ship.png")
self.colorlayer=pygame.image.load("shipcolor.png")
self.rect = self.image.get_rect()
self.x=400
self.y=300
self.angle_delta = 0
def drawsprite(self,surface):
old_image_center = self.rect.center
new_image = pygame.image.load("ship.png")
new_colorlayer = pygame.image.load("shipcolor.png")
self.image = pygame.transform.rotate(new_image, self.angle_delta)
self.colorlayer = pygame.transform.rotate(new_colorlayer, self.angle_delta)
self.rect = self.image.get_rect()
self.rect.center = old_image_center
surface.blit(self.colorlayer,(self.x, self.y))
surface.blit(self.image,(self.x, self.y))
def rotate(self):
if event.type == pygame.KEYDOWN:
if event.key== pygame.K_RIGHT:
self.angle_delta += 45
if event.key== pygame.K_LEFT:
self.angle_delta -=45