I have this code for a simple game in PyGame:
import pygameimport sysclass Player(pygame.sprite.Sprite): def __init__(self, pos_X, pos_Y): super().__init__() self.sprites = [] self.is_animating = False self.sprites.append(pygame.transform.scale(pygame.image.load("greg1.png"), (500, 500))) self.sprites.append(pygame.transform.scale(pygame.image.load("greg2.png"), (500, 500))) self.sprites.append(pygame.transform.scale(pygame.image.load("greg3.png"), (500, 500))) self.sprites.append(pygame.transform.scale(pygame.image.load("greg4.png"), (500, 500))) self.sprites.append(pygame.transform.scale(pygame.image.load("greg5.png"), (500, 500))) self.current_sprite = 0 self.image = self.sprites[self.current_sprite] self.rect = self.image.get_rect() self.rect.topleft = [pos_X, pos_Y] def animate(self): self.is_animating = True def update(self): if self.is_animating == True: self.current_sprite += 0.2 if self.current_sprite >= len(self.sprites): self.current_sprite = 0 self.is_animating = False self.image = self.sprites[int(self.current_sprite)]pygame.init()clock = pygame.time.Clock()backdrop = pygame.image.load("city.png")screen_width = 1280screen_height = 1000screen = pygame.display.set_mode((screen_width, screen_height))pygame.display.set_caption("Game")moving_sprites = pygame.sprite.Group()player = Player(100, 100)moving_sprites.add(player)while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: player.animate() moving_sprites.draw(screen) moving_sprites.update() pygame.display.flip() screen.blit(backdrop, (0,0)) clock.tick(60)I'm trying to use the blit function to add a backdrop. However, now the animation layers are animating on top of each other.
How can I fix this?