Ваш кадр цикла ходьбы (как и все движения) должен быть функцией абсолютного времени, а не количества кадров. e.g.:
def walk_frame(millis, frames_per_second, framecount, start_millis=0):
millis_per_frame = 1000 / frames_per_second
elapsed_millis = millis - start_millis
total_frames = elapsed_millis / millis_per_frame
return total_frames % framecount