public Vector3 Lerp(float min, float max, float optimal, Vector2 pos1, Vector2 pos2)
    {
        float dist = Vector2.Distance(pos1, pos2);

        if (dist > 0.01f)
        {
            //Lerp camera to player

            //greater distance faster camera
            //less distance slower camera

            float MaxSpeed = max;

            float MinSpeed = min;

            float t = dist / optimal;

            t = Mathf.Clamp(t, 0f, 1f);

            float Speed = (MinSpeed + (MaxSpeed - MinSpeed) * t);

            Vector2 dir = pos1 - pos2;

            dir = dir.normalized;

            return(new Vector2(dir.x, dir.y) * (-Speed * DynamicUpdateManager.GetDeltaTime()));
        }
        return(new Vector2(0, 0));
    }
 void MoveAimer()
 {
     if (m_bBounce)
     {
         m_fReAim += DynamicUpdateManager.GetDeltaTime();
     }
     if (m_bBounce && m_fReAim < 1f)
     {
         //transform.position += (v3BounceDir * ((m_fAimRate) * DynamicUpdateManager.GetDeltaTime()));
     }
     else if (m_bRollLeft || m_bRollRight)
     {
         if (m_bRollLeft)
         {
             v3Velocity.x += -3;
         }
         if (m_bRollRight)
         {
             v3Velocity.x += 3;
         }
         CheckBounds();
         transform.localPosition += v3Velocity * (m_fAimRate * DynamicUpdateManager.GetDeltaTime());
     }
     else
     {
         CheckBounds();
         transform.localPosition += v3Velocity * (m_fAimRate * DynamicUpdateManager.GetDeltaTime());
     }
     if (m_fReAim > 0.2f)
     {
         m_bBounce = false;
     }
 }
Ejemplo n.º 3
0
    public MovementBasedOnTime(Vector3 StartPosition, Vector3 EndPosition, float Seconds, bool AddSelfToList = false, bool UpdateEvenIfGameIsPaused = false)
    {
        SetupMovement(StartPosition, EndPosition, Seconds, UpdateEvenIfGameIsPaused);

        if (AddSelfToList)
        {
            m_ID = DynamicUpdateManager.AddMovementBasedOnTime(this);
        }
    }
Ejemplo n.º 4
0
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	** Constructor
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    public TimeTracker(float TotalWaitTime, bool AddSelfToAutoUpdateList = false, bool UpdateEvenWhenGameIsPaused = false)
    {
        m_fWaitTimer        = TotalWaitTime;
        m_bUpdateWhenPaused = UpdateEvenWhenGameIsPaused;

        if (AddSelfToAutoUpdateList)
        {
            m_ID = DynamicUpdateManager.AddTimeTracker(this);
        }
    }
    // Update is called once per frame
    void Update()
    {
        transform.position = (transform.position + (transform.forward * m_fSpeed * DynamicUpdateManager.GetDeltaTime()));

        m_TTSelfDestruct.Update();
        if (m_TTSelfDestruct.TimeUp())
        {
            DestroyImmediate(gameObject);
        }
    }
Ejemplo n.º 6
0
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	** Constructor
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    public FadeEffect(AudioSource ASource, float FadeTime, float StartVolume, float FinishVolume)
    {
        if (ASource == null)
        {
            return;
        }

        m_ASource      = ASource;
        m_fStartVolume = StartVolume;
        m_fEndVolume   = FinishVolume;
        m_bFadeIn      = (StartVolume < FinishVolume);
        m_TTTimeValue  = new TimeTracker(FadeTime, false, true);
        m_ID           = DynamicUpdateManager.AddFadeEffect(this);
    }
    private void CheckBounds()
    {
        Vector3 newPos = transform.localPosition + (v3Velocity * (m_fAimRate * DynamicUpdateManager.GetDeltaTime()));

        if (newPos.x < m_v3MinBounds.x || newPos.x > m_v3MaxBounds.x)
        {
            v3Velocity.x = 0;
        }

        if (newPos.y < m_v3MinBounds.y || newPos.y > m_v3MaxBounds.y)
        {
            v3Velocity.y = 0;
        }

        v3Velocity.z = 0;
    }
Ejemplo n.º 8
0
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	* New Method: Update
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    public void Update()
    {
        m_TTTimeValue.Update();
        if (m_TTTimeValue.TimeUp())
        {
            m_ASource.volume = m_fEndVolume;
            DynamicUpdateManager.RemoveFadeEffect(m_ID);
        }



        if (m_bFadeIn)
        {
            m_ASource.volume = ((m_fEndVolume - m_fStartVolume) * m_TTTimeValue.GetCompletionPercentage());
        }
        else
        {
            m_ASource.volume = (m_fStartVolume - (m_fStartVolume * m_TTTimeValue.GetCompletionPercentage()));
        }
    }
    void UpdateVisualAimer()
    {                                           //AIMER					//Player
        Vector3 line = transform.position - Player.transform.position;

        line.Normalize();
        Vector3 VisAimerPoint = line * -100;

        VisAimerPoint = VisAimerPoint + transform.position;

        VisAimer.transform.position = Vector3.Lerp(VisAimer.transform.position, VisAimerPoint, DynamicUpdateManager.GetDeltaTime() * 100);
    }
Ejemplo n.º 10
0
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //	* New Method: Get Delta Time
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 private float GetDeltaTime()
 {
     return((GameHandler.IsGamePaused() && m_bUpdateWhenPaused) ? DynamicUpdateManager.GetDeltaTime() : Time.deltaTime);
 }
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //	* New Method: Reset Static Classes
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 public static void ResetStaticClasses()
 {
     AI_Manager.Reset();
     DynamicUpdateManager.Reset();
 }
    /// <summary>
    /// Moves the player based on where the aimer is.
    /// Rotates the ship to face the aimer and adjusts x and y locations.
    /// </summary>
    public void MovePlayer()
    {
        float dist = Vector2.Distance(new Vector2(targetAim.transform.localPosition.x, targetAim.transform.localPosition.y), new Vector2(transform.localPosition.x, transform.localPosition.y));

        if (isRolling())
        {
            m_fSpeed = m_fRollSpeed;
        }

        //rotates the ship to look at the aimer
        Quaternion rotation = Quaternion.LookRotation(new Vector3(targetAim.transform.position.x, targetAim.transform.position.y, targetAim.transform.position.z) - transform.position);

        Vector3 tempAngles = new Vector3(rotation.eulerAngles.x, rotation.eulerAngles.y, m_v3PrevRot.z);
        float   TiltMod    = targetAim.GetTiltMod();

        if (tempAngles.z > -30 && tempAngles.z < 30 || tempAngles.z > 330)
        {
            tempAngles.z = 15 * TiltMod;
        }

        if (TiltMod == 0)
        {
            tempAngles.z = 0;
        }

        rotation.eulerAngles = tempAngles;

        transform.rotation = Quaternion.Slerp(transform.rotation, rotation, DynamicUpdateManager.GetDeltaTime() * 6.0f);

        m_v3PrevRot = transform.localRotation.eulerAngles;

        //transform.localRotation = modifiedRot;

        //grab targets rotation
        //add it to player rotation

        targetAim.MoveAdjust  = m_fMoveMultipier;
        targetAim.StrafeSpeed = m_fStrafeSpeed;
        targetAim.AltSpeed    = m_fAltSpeed;


        Vector3 targetPos = targetAim.transform.localPosition;

        targetPos.z -= targetAim.m_PlayerOffset;



        m_Velocity   = targetPos - transform.localPosition;
        m_Velocity.z = 0;
        m_Velocity.Normalize();

        Vector3 PositionCheck = transform.localPosition + m_Velocity * (m_fSpeed * DynamicUpdateManager.GetDeltaTime());

        if (PositionCheck.x > m_v2MaxBounds.x || PositionCheck.x < m_v2MinBounds.x)
        {
            m_Velocity.x = 0;
        }
        if (PositionCheck.y > m_v2MaxBounds.y || PositionCheck.y < m_v2MinBounds.y)
        {
            m_Velocity.y = 0;
        }

        if (dist > m_fStopDistance)       // * targetAim.GetMoveValue())
        {
            transform.localPosition += m_Velocity * (m_fSpeed * DynamicUpdateManager.GetDeltaTime());
        }
    }
    // Update is called once per frame
    void Update()
    {
        m_Velocity = new Vector3(0, 0, 0);

        MovePlayer();

        GetInput();

        RollShip();

        //CameraFollow();

        if (m_bIsShot)
        {
            m_fHitTimer += DynamicUpdateManager.GetDeltaTime();
        }

        if (m_fHitTimer > m_fHitReset)
        {
            m_bIsShot = false;
            gameObject.GetComponent <Animator>().SetBool("PlayerHit", m_bIsShot);
            m_fHitTimer = 0;
        }

        if (m_bDead)
        {
            deathTimer += DynamicUpdateManager.GetDeltaTime();
        }

        if (m_bBrainBugged)
        {
            m_fBBTimer += DynamicUpdateManager.GetDeltaTime();

            if (m_fBBTimer > m_fBBResetTime)
            {
                SetBugged(false);
            }
        }

        if (Input.GetKey(KeyCode.Escape))
        {
            GameHandler.Quit();
        }


        if (m_fCollTimer > m_fCollReset)
        {
            gameObject.GetComponent <Collider>().enabled = true;
        }
        /////////////////////////////////////////////////////

        //Controls the state of the rolling ship
        if (m_bRollingLeft || m_bRollingRight)
        {
            m_fRollTimer += DynamicUpdateManager.GetDeltaTime();
        }

        if (m_fRollTimer > 0.5)
        {
            m_bRollingLeft        = false;
            targetAim.m_bRollLeft = false;
            gameObject.GetComponent <Animator>().SetBool("RollingLeft", m_bRollingLeft);
            m_bRollingRight        = false;
            targetAim.m_bRollRight = false;
            gameObject.GetComponent <Animator>().SetBool("RollingRight", m_bRollingRight);
            m_fRollTimer     = 0f;
            m_fMoveMultipier = 0f;
        }

        //Rolls the ship left or right based on input
        if (Input.GetKey(KeyCode.Q))
        {
            RollShipLeft();
        }
        else if (Input.GetKey(KeyCode.E))
        {
            RollShipRight();
        }

        //////////////////////////////////////////////////////////////////////////
        //Read the buttons used to pick up shooting a bullet or missile
        //Only shoots as fast as you can press
        //////////////////////////////////////////////////////////////////////////
        if (Input.GetKeyDown(KeyCode.Space) || XboxInputHandler.KeyTriggered(m_aFireTriggerAxis))
        {
            ShootBullet();
        }
    }