Como correr una funcion con tiempo constante? Python – Pygame

Estoy haciendo un juego y tengo dentro de un array los sprites de dicho personaje, este tiene un metodo que va retornando cada sprite de cada posicion:

   def update_player(self):

    if (self.position >= 4):
        self.position = 0
        return self.sprite_array(self.position)
    else:
        sprite = self.sprite_array(int(self.position))
        self.position += 1
        return sprite

como pueden ver, el spritesheet consta de 4 images, y va retornando cada una de ellas

este metodo lo llamo en otro que se usa para dibujar:

def update_window(self):
    self.window.blit(self.screen.update_screen(), (0,0))
    self.window.blit(self.player.update_player(), (0,0))

y este metodo esta en un while:

while True: 

pygame.event.pump()
window.update_window()
pydisplay.update()

por eso se llamara infinitamente, problema es que el movimiento del sprite es demasiado rapido, como puedo hacerlo mas natural?