您需要跟踪时间,因此您可以使用pygame.time.get_ticks或clock.tick()返回的时间(通常称为dt表示增量时间),然后在经过一段时间后更新图像.
pygame.time.get_ticks变体:
class Player(pg.sprite.Sprite):
def __init__(self, pos, *groups):
super().__init__(*groups)
self.frame = 0 # Index of the current animation frame.
self.image = IMAGES[self.frame] # Set image to the first image.
self.rect = self.image.get_rect(center=pos)
# Start time of the last animation frame.
self.start_time = pg.time.get_ticks()
# If the time limit is reached, increment the index
# and change self.image.
self.time_limit = 300 # Milliseconds.
def update(self):
now = pg.time.get_ticks()
if now - self.start_time > self.time_limit:
self.frame += 1 # Increment the frame index.
self.frame %= len(IMAGES) # Keep the index in the range.
sel