コード例 #1
0
    public override void Update()
    {
        Vector2 new_pos = Vector2.zero;

        switch (movement_type)
        {
        case MovementType.MOVEMENT_LINEAR:
        {
            new_pos.x = EasingFunctions.Linear(distance.x, timer.ReadRealTime(), starting_pos.x, duration);
            new_pos.y = EasingFunctions.Linear(distance.y, timer.ReadRealTime(), starting_pos.y, duration);

            break;
        }

        case MovementType.MOVEMENT_EXPO_IN:
        {
            new_pos.x = EasingFunctions.ExpoIn(distance.x, timer.ReadRealTime(), starting_pos.x, duration);
            new_pos.y = EasingFunctions.ExpoIn(distance.y, timer.ReadRealTime(), starting_pos.y, duration);

            break;
        }

        case MovementType.MOVEMENT_EXPO_OUT:
        {
            new_pos.x = EasingFunctions.ExpoOut(distance.x, timer.ReadRealTime(), starting_pos.x, duration);
            new_pos.y = EasingFunctions.ExpoOut(distance.y, timer.ReadRealTime(), starting_pos.y, duration);

            break;
        }

        case MovementType.MOVEMENT_EXPO_IN_OUT:
        {
            new_pos.x = EasingFunctions.ExpoInOut(distance.x, timer.ReadRealTime(), starting_pos.x, duration);
            new_pos.y = EasingFunctions.ExpoInOut(distance.y, timer.ReadRealTime(), starting_pos.y, duration);

            break;
        }

        case MovementType.MOVEMENT_BOUNCE:
        {
            new_pos.x = EasingFunctions.Bounce(distance.x, timer.ReadRealTime(), starting_pos.x, duration);
            new_pos.y = EasingFunctions.Bounce(distance.y, timer.ReadRealTime(), starting_pos.y, duration);

            break;
        }

        case MovementType.MOVEMENT_QUAD_IN:
        {
            new_pos.x = EasingFunctions.QuadIn(distance.x, timer.ReadRealTime(), starting_pos.x, duration);
            new_pos.y = EasingFunctions.QuadIn(distance.y, timer.ReadRealTime(), starting_pos.y, duration);

            break;
        }

        case MovementType.MOVEMENT_QUAD_OUT:
        {
            new_pos.x = EasingFunctions.QuadOut(distance.x, timer.ReadRealTime(), starting_pos.x, duration);
            new_pos.y = EasingFunctions.QuadOut(distance.y, timer.ReadRealTime(), starting_pos.y, duration);

            break;
        }

        case MovementType.MOVEMENT_QUAD_IN_OUT:
        {
            new_pos.x = EasingFunctions.QuadInOut(distance.x, timer.ReadRealTime(), starting_pos.x, duration);
            new_pos.y = EasingFunctions.QuadInOut(distance.y, timer.ReadRealTime(), starting_pos.y, duration);

            break;
        }
        }

        affected_element.transform.position = new_pos;

        if (timer.ReadRealTime() >= duration)
        {
            affected_element.transform.position = final_pos;
            Finish();
        }
    }