# Class cocos.actions.quadmoveby_actions.QuadMoveBy

        base_actions.Action --+
                              |
    base_actions.IntervalAction --+
                                  |
    basegrid_actions.GridBaseAction --+
                                      |
          basegrid_actions.Grid3DAction --+
                                          |
                                         QuadMoveBy

Known Subclasses:
  CornerSwap, Flip, FlipX, FlipY, MoveCornerDown, MoveCornerUp, SkewHorizontal, SkewVertical

QuadMoveBy moves each vertex of the grid. The size of the grid is (1,1)

Vertex positions:

    vertex3 --<-- vertex2
        |            |
        v            ^
        |            |
    vertex0 -->-- vertex1

    The vertices will move from the origin (src parameters) a relative distance (delta parameters) in duration time.

Example:

    scene.do( QuadMoveBy( src0, src1, src2, src3,
            delta0, delta1, delta2, delta3,
            duration) )

## Methods

| init(self, src0=`(`0`,` 0`)`, src1=`(`-1`,` -1`)`, src2=`(`-1`,` -1`)`, src3=`(`-1`,` -1`)`, delta0=`(`0`,` 0`)`, delta1=`(`0`,` 0`)`, delta2=`(`0`,` 0`)`, delta3=`(`0`,` 0`)`, grid=`(`1`,` 1`)`, *args, **kw) Initializes the QuadMoveBy
| update(self, t) Gets called on every frame 't' is the time elapsed normalized to [0, 1] If this action takes 5 seconds to execute, `t` will be equal to 0 at 0 seconds.
| __add__(self, action) sequence operator - concatenates actions action1 + action2 -> action_result where action_result performs as: first do all that action1 would do; then perform all that action2 would do (Inherited from cocos.actions.base_actions.Action)
| __init__(self, *args, **kwargs) dont override - use init (Inherited from cocos.actions.base_actions.Action)
| __mul__(self, other) repeats ntimes the action action * n -> action_result where action result performs as: repeat n times the changes that action would do (Inherited from cocos.actions.base_actions.IntervalAction)
| __or__(self, action) spawn operator - runs two actions in parallel action1 | action2 -> action_result (Inherited from cocos.actions.base_actions.Action)
| __reversed__(self) (Inherited from cocos.actions.basegrid_actions.GridBaseAction)
| done(self) When in the worker role, this method is reliable. (Inherited from cocos.actions.base_actions.IntervalAction)
| get_grid(self) (Inherited from cocos.actions.basegrid_actions.Grid3DAction)
(float, float, float) | get_original_vertex(self, x, y) Get the original vertex coordinate. (Inherited from cocos.actions.basegrid_actions.Grid3DAction)
(float, float, float) | get_vertex(self, x, y) Get the current vertex coordinate (Inherited from cocos.actions.basegrid_actions.Grid3DAction)
| set_vertex(self, x, y, v) Set a vertex point is a certain value (Inherited from cocos.actions.basegrid_actions.Grid3DAction)
| start(self) External code sets self.target and then calls this method. (Inherited from cocos.actions.basegrid_actions.GridBaseAction)
| step(self, dt) Dont customize this method: it will not be called when in the component role for certain composite actions (like Sequence_IntervalAction). (Inherited from cocos.actions.base_actions.IntervalAction)
| stop(self) When the action must cease to perform this function is called by external code; after this call no other method should be called. (Inherited from cocos.actions.base_actions.Action)

## Instance Variables

| target CocosNode object that is the target of the action (Inherited from cocos.actions.base_actions.Action)

## Method Details

### init

init(self, src0=`(`0`,` 0`)`, src1=`(`-1`,` -1`)`, src2=`(`-1`,` -1`)`, src3=`(`-1`,` -1`)`, delta0=`(`0`,` 0`)`, delta1=`(`0`,` 0`)`, delta2=`(`0`,` 0`)`, delta3=`(`0`,` 0`)`, grid=`(`1`,` 1`)`, *args, **kw)
Initializes the QuadMoveBy

Parameters:
  src0 : (int, int)
    Initial value for the bottom-left coordinate. Default is (0,0)
  src1 : (int, int)
    Initial value for the bottom-right coordinate. Default is (win_size_x,0)
  src2 : (int, int)
    Initial value for the upper-right coordinate. Default is (win_size_x, win_size_y)
  src3 : (int, int)
    Initial value for the upper-left coordinate. Default is (0, win_size_y)
  delta0 : (int, int)
    The bottom-left relative coordinate. Default is (0,0)
  delta1 : (int, int)
    The bottom-right relative coordinate. Default is (0,0)
  delta2 : (int, int)
    The upper-right relative coordinate. Default is (0,0)
  delta3 : (int, int)
    The upper-left relative coordinate. Default is (0,0)
Overrides:
  basegrid_actions.GridBaseAction.init

### update

update(self, t)
Gets called on every frame 't' is the time elapsed normalized to [0, 1] If this action takes 5 seconds to execute, `t` will be equal to 0 at 0 seconds. `t` will be 0.5 at 2.5 seconds and `t` will be 1 at 5sec. This method must not use self._elapsed, which is not guaranted to be updated.

Overrides:
  base_actions.IntervalAction.update