game_qu.paths.action_followable_path API documentation

# Module `game_qu.paths.action_followable_path`

Expand source code

    from game_qu.paths.velocity_followable_path import VelocityFollowablePath

    class ActionFollowablePath(VelocityFollowablePath):
        """ A path that performs an action at each of the points. This does not work the FollowablePath methods. This will have
            to change in the future."""

        actions = []
        is_unending = True
        index_of_last_line = None
        object_on_path = None

        def __init__(self, start_point, object_on_path, velocity):
            """Initializes the object"""

            super().__init__(start_point, [], velocity)
            self.object_on_path = object_on_path
            self.actions = []

        def add_point(self, point, action, additional_time=None):
            """Adds the point to the action path"""

            if additional_time is None:
                super().add_point(point)

            if additional_time is not None:
                super().add_time_point(point, self.last_end_time + additional_time)

            self.actions.append(action)

        def run(self):
            """Runs all the code for the action path"""

            new_index = self.get_index_of_line(self.total_time % self.max_time)

            if new_index != self.index_of_last_line:
                self.index_of_last_line = new_index
                self.actions[new_index]()

            self.object_on_path.left_edge, self.object_on_path.top_edge = self.get_coordinates()

        def update_for_side_scrolling(self, amount):
            """Updates the Path, so side scrolling doesn't cause any issues"""

            for left_edge_line in self.left_edge_lines:
                # The y_coordinate for the left_edge_line is the 'left_edge' and the x_coordinate is 'time'
                left_edge_line.start_point.y_coordinate -= amount
                left_edge_line.end_point.y_coordinate -= amount

                left_edge_line.update_line_values()

        def reset(self):
            """As of now action followable paths do not support this operation"""

            pass

        def is_done(self, should_reset=False):
            """As of now action followable paths do not support this operation"""

            pass

        def has_finished(self):
            """As of now action followable paths do not support this operation"""

            pass

        def start(self):
            """As of now action followable paths do not support this operation"""

            pass

        def get_value_at_time(self, time):
            """As of now action followable paths do not support this operation"""

            pass

        def get_delta_value(self, start_time, end_time):
            """As of now action followable paths do not support this operation"""

            pass

## Classes

`class ActionFollowablePath (start_point, object_on_path, velocity)`

  A path that performs an action at each of the points. This does not work the FollowablePath methods. This will have to change in the future.

  Initializes the object

  Expand source code

      class ActionFollowablePath(VelocityFollowablePath):
          """ A path that performs an action at each of the points. This does not work the FollowablePath methods. This will have
              to change in the future."""

          actions = []
          is_unending = True
          index_of_last_line = None
          object_on_path = None

          def __init__(self, start_point, object_on_path, velocity):
              """Initializes the object"""

              super().__init__(start_point, [], velocity)
              self.object_on_path = object_on_path
              self.actions = []

          def add_point(self, point, action, additional_time=None):
              """Adds the point to the action path"""

              if additional_time is None:
                  super().add_point(point)

              if additional_time is not None:
                  super().add_time_point(point, self.last_end_time + additional_time)

              self.actions.append(action)

          def run(self):
              """Runs all the code for the action path"""

              new_index = self.get_index_of_line(self.total_time % self.max_time)

              if new_index != self.index_of_last_line:
                  self.index_of_last_line = new_index
                  self.actions[new_index]()

              self.object_on_path.left_edge, self.object_on_path.top_edge = self.get_coordinates()

          def update_for_side_scrolling(self, amount):
              """Updates the Path, so side scrolling doesn't cause any issues"""

              for left_edge_line in self.left_edge_lines:
                  # The y_coordinate for the left_edge_line is the 'left_edge' and the x_coordinate is 'time'
                  left_edge_line.start_point.y_coordinate -= amount
                  left_edge_line.end_point.y_coordinate -= amount

                  left_edge_line.update_line_values()

          def reset(self):
              """As of now action followable paths do not support this operation"""

              pass

          def is_done(self, should_reset=False):
              """As of now action followable paths do not support this operation"""

              pass

          def has_finished(self):
              """As of now action followable paths do not support this operation"""

              pass

          def start(self):
              """As of now action followable paths do not support this operation"""

              pass

          def get_value_at_time(self, time):
              """As of now action followable paths do not support this operation"""

              pass

          def get_delta_value(self, start_time, end_time):
              """As of now action followable paths do not support this operation"""

              pass

  ### Ancestors

  - VelocityFollowablePath
  - FollowablePath
  - abc.ABC

  ### Subclasses

  - ActionPath

  ### Class variables

  `var actions`
  `var index_of_last_line`
  `var is_unending`
  `var object_on_path`

  ### Methods

  `def add_point(self, point, action, additional_time=None)`

    Adds the point to the action path

    Expand source code

        def add_point(self, point, action, additional_time=None):
            """Adds the point to the action path"""

            if additional_time is None:
                super().add_point(point)

            if additional_time is not None:
                super().add_time_point(point, self.last_end_time + additional_time)

            self.actions.append(action)

  `def get_delta_value(self, start_time, end_time)`

    As of now action followable paths do not support this operation

    Expand source code

        def get_delta_value(self, start_time, end_time):
            """As of now action followable paths do not support this operation"""

            pass

  `def get_value_at_time(self, time)`

    As of now action followable paths do not support this operation

    Expand source code

        def get_value_at_time(self, time):
            """As of now action followable paths do not support this operation"""

            pass

  `def has_finished(self)`

    As of now action followable paths do not support this operation

    Expand source code

        def has_finished(self):
            """As of now action followable paths do not support this operation"""

            pass

  `def is_done(self, should_reset=False)`

    As of now action followable paths do not support this operation

    Expand source code

        def is_done(self, should_reset=False):
            """As of now action followable paths do not support this operation"""

            pass

  `def reset(self)`

    As of now action followable paths do not support this operation

    Expand source code

        def reset(self):
            """As of now action followable paths do not support this operation"""

            pass

  `def run(self)`

    Runs all the code for the action path

    Expand source code

        def run(self):
            """Runs all the code for the action path"""

            new_index = self.get_index_of_line(self.total_time % self.max_time)

            if new_index != self.index_of_last_line:
                self.index_of_last_line = new_index
                self.actions[new_index]()

            self.object_on_path.left_edge, self.object_on_path.top_edge = self.get_coordinates()

  `def start(self)`

    As of now action followable paths do not support this operation

    Expand source code

        def start(self):
            """As of now action followable paths do not support this operation"""

            pass

  `def update_for_side_scrolling(self, amount)`

    Updates the Path, so side scrolling doesn't cause any issues

    Expand source code

        def update_for_side_scrolling(self, amount):
            """Updates the Path, so side scrolling doesn't cause any issues"""

            for left_edge_line in self.left_edge_lines:
                # The y_coordinate for the left_edge_line is the 'left_edge' and the x_coordinate is 'time'
                left_edge_line.start_point.y_coordinate -= amount
                left_edge_line.end_point.y_coordinate -= amount

                left_edge_line.update_line_values()

  ### Inherited members

  - `VelocityFollowablePath`:
    - `add_time_point`
    - `get_coordinates`
    - `get_coordinates_at_time`
    - `get_index_of_line`
    - `restart`
    - `set_time`
    - `update_time`