code: def update(self):
          
          returnValue = False  # typical return value
          if self.state != PygAnimation.PLAYING:
              return returnValue
  
          # The job here is to figure out the index of the image to show
          # and the matching elapsed time threshold for the current image
          self.elapsed = (time.time() - self.playingStartTime)
  
          if self.elapsed > self.elapsedStopTime:  # anim finished
              if self.loop:  # restart the animation
                  self.playingStartTime = time.time()
                  self.nextElapsedThreshold = self.endTimesList[0]
              else:  # not looping
                  self.nIterationsLeft = self.nIterationsLeft - 1
                  if self.nIterationsLeft == 0:  # done
                      self.state = PygAnimation.STOPPED
                      if self.callBack != None:  # if there is a callBack
                          self.callBack(self.nickname)  # do it
                      returnValue = True  # animation has ended
                  else:  # another iteration - start over again
                      self.playingStartTime = time.time()
                      self.nextElapsedThreshold = self.endTimesList[0]
              self.index = 0
  
          elif self.elapsed > self.nextElapsedThreshold:
              # Time to move on to next picture
              self.index = self.index + 1
              self.nextElapsedThreshold = self.endTimesList[self.index]
  
          return returnValue
docs: Updates the currently running animation.
  
          This method should be called in every frame where you want an animation to run.
          Its job is to figure out if it is time to move onto the next image in the animation.