Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 23305

Pygame causing my animations to layer on top of each other

$
0
0

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?


Viewing all articles
Browse latest Browse all 23305

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>