code: def set_scenes(self, scenes, unhandled_input=None, start_scene=None):
          
          # Save off the scenes now.
          self._scenes = scenes
  
          # Set up default unhandled input handler if needed.
          if unhandled_input is None:
              # Check that none of the Effects is incompatible with the default
              # handler.
              safe = True
              for scene in self._scenes:
                  for effect in scene.effects:
                      safe &= effect.safe_to_default_unhandled_input
              if safe:
                  unhandled_input = self._unhandled_event_default
          self._unhandled_input = unhandled_input
  
          # Find the starting scene.  Default to first if no match.
          self._scene_index = 0
          if start_scene is not None:
              for i, scene in enumerate(scenes):
                  if scene.name == start_scene.name:
                      self._scene_index = i
                      break
  
          # Reset the Scene - this allows the original scene to pick up old
          # values on resizing.
          self._scenes[self._scene_index].reset(
              old_scene=start_scene, screen=self)
  
          # Reset other internal state for the animation
          self._frame = 0
          self._idle_frame_count = 0
          self._forced_update = False
          self.clear()
docs: Remember a set of scenes to be played.  This must be called before
          using :py:meth:`.draw_next_frame`.
  
          :param scenes: a list of :py:obj:`.Scene` objects to play.
          :param unhandled_input: Function to call for any input not handled
              by the Scenes/Effects being played.  Defaults to a function that
              closes the application on "Q" or "X" being pressed.
          :param start_scene: The old Scene to start from.  This must have name
              that matches the name of one of the Scenes passed in.
  
          :raises ResizeScreenError: if the screen is resized (and allowed by
              stop_on_resize).
  
          The unhandled input function just takes one parameter - the input
          event that was not handled.