Skip to content Skip to sidebar Skip to footer

Trying To Change Image Of Moving Character In Every 0.25 Seconds Pygame

So i am trying to 'animate' my character in pygame by changing between 2 pictures when he walks. I tried to use the code that was mentioned here: In PyGame, how to move an image ev

Solution 1:

In pygame the system time can be obtained by calling pygame.time.get_ticks(), which returns the number of milliseconds since pygame.init() was called. See pygame.time module.

Use an attribute self.walk_count to animate the character. Add an attribute animate_time to the class that indicates when the animation image needs to be changed. Compare the current time with animate_time in draw(). If the current time exceeds animate_time, increment self.walk_count and calculate the next animate_time.

classPlayer:

    def__init__(self):

        self.animate_time = None
        self.walk_count = 0defdraw(self):

        current_time = pygame.time.get_ticks()
        current_img = self.img
        
        if self.xchange != 0:
            current_img = self.walk1 if self.walk_count % 2 == 0else self.walk2

            if self.animate_time == None:
                self.animate_time = current_time + 250# 250 milliseconds == 0.25 secondselif current_time >= self.animate_time
                self.animate_time += 250
                self.walk_count += 1else: 
            self.animate_time = None
            self.walk_count = 0

        screen.blit(current_img, (self.x, self.y)) 

Post a Comment for "Trying To Change Image Of Moving Character In Every 0.25 Seconds Pygame"