예제 #1
0
    public void State_lowerdown_Update()
    {
        float dt = FrameController.DT();

        if (riseupTimer_ <= riseupTime_)
        {
            riseupTimer_ += dt;
            trans_.SetPositionY(MMath.Cerp(upperTrans_.position.y, lowerTrans_.position.y, riseupTimer_ / riseupTime_));
        }

        if (startupTimer_ <= shutdownTime_)
        {
            startupTimer_ += dt;
            revTime_       = MMath.Lerp(revFinalTime_, 50, startupTimer_ / shutdownTime_);
            revInc_        = 360.0f / revTime_;
        }

        if (riseupTimer_ > riseupTime_ && startupTimer_ > shutdownTime_)
        {
            smc.SetState(end);
        }

        //else if(riseupTimer_ >= riseupTime_ + transitionTime_)
        //	smc.SetState(riseup);
        trans_.RotateAround(0, 1, 0, revInc_ * dt);
    }
예제 #2
0
    public void OnUpdate()
    {
        zone.ClampObjectToBounds(gameObject);

        //paper shuffle
        if (isBeingHeld && Input.GetHeld(0, "MouseRClick") == 1.0f)
        {
            //reset acquired
            acquiredVelocity    = new Vector3(0.0f);
            acquiredVelocity.X += Input.GetMouseDeltaX() * FrameController.DT() * 0.02f;
            acquiredVelocity.Z += -Input.GetMouseDeltaY() * FrameController.DT() * 0.02f;

            velocityAccumulator = 0;
            velocity            = acquiredVelocity;
        }
        else
        {
            velocityAccumulator += FrameController.DT();
            velocityAccumulator  = MMath.Clamp01(velocityAccumulator);
            velocity.X           = MMath.Lerp(acquiredVelocity.X, 0, velocityAccumulator);
            velocity.Z           = MMath.Lerp(acquiredVelocity.Z, 0, velocityAccumulator);
        }

        gameObject.transform.Translate(velocity);
        gameObject.transform.SetPositionY(changeY * (gameObject.transform.position.z - initialZ) + initialY);

        //reset held
        if (isBeingHeld)
        {
            if (Input.GetReleased(0, "MouseRClick") == 1.0f)
            {
                isBeingHeld = false;
            }
        }
    }
예제 #3
0
    public static Vector3 LerpVector(Vector3 start, Vector3 end, float percent)
    {
        Vector3 result = new Vector3();

        result.X = MMath.Lerp(start.X, end.X, percent);
        result.Y = MMath.Lerp(start.Y, end.Y, percent);
        result.Z = MMath.Lerp(start.Z, end.Z, percent);
        return(result);
    }
 void State_Sprinting_Update()
 {
     if (sprintDirection)
     {
         playerCamera.transform.rotation.Angles.z = MMath.Lerp(begAngle, -0.1f, sprinting.GetPercentageTime());
     }
     else
     {
         playerCamera.transform.rotation.Angles.z = MMath.Lerp(begAngle, 0.1f, sprinting.GetPercentageTime());
     }
 }
예제 #5
0
 void S_turningon_Update()
 {
     turningon.MaxTimeInState = hunting.MaxTimeInState;
     mlight.mIntensity        = MMath.Lerp(0.0f, 1.0f, turningon.GetPercentageTime());
 }