Beispiel #1
0
    public override bool Move(ref Vector2 xy, Vector2 target)
    {
        ramp += 25f * Time.deltaTime;

        if ((xy.x >= target.x) ^ (velocity < 0))
        {
            velocity = 0;
            ramp     = 0f;
            xy       = target;
            return(true);
        }


        if (Mathf.Abs(xy.y - target.y) < YVEL * Time.deltaTime * ramp)
        {
            xy.y = target.y;
        }
        else
        {
            if (xy.y < target.y)
            {
                xy.y += YVEL * Time.deltaTime * ramp;
            }
            else
            {
                xy.y -= YVEL * Time.deltaTime * ramp;
            }
        }

        if (xy.x < target.x)
        {
            velocity += accel * ramp * Time.deltaTime;
        }
        else
        {
            velocity -= accel * ramp * Time.deltaTime;
        }

        xy.x += velocity * Time.deltaTime;

        return(MovementType.DistanceStopping(xy, target));
    }