예제 #1
0
    //calculates the velocity increase needed to reach the target height in the given time
    float ContinuousVelocity()
    {
        float heightNeeded      = maxJumpHeight - minJumpHeight;
        float gravityResistance = timeToMaxJump * CentralGravity.GetGravityAcceleration() / 2;

        return(heightNeeded + gravityResistance);
    }
예제 #2
0
    //Collider2D[] cols;

    // Use this for initialization
    void Start()
    {
        cc   = GetComponent <CentripetalCounter>();
        grav = GetComponent <CentralGravity>();
        body = GetComponent <Rigidbody2D>();
        //cols = GetComponents<Collider2D>();
    }
예제 #3
0
    void OnTriggerExit2D(Collider2D col)
    {
        int objLayer = col.gameObject.layer;

        if (objLayer == playerLayer || objLayer == boxLayer)
        {
            CentralGravity cg = col.GetComponent <CentralGravity>();
            //print(col.gameObject.name);
            cg.RightsideUp();
        }
    }
예제 #4
0
    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.gameObject.tag != "Player")
        {
            return;
        }

        int objLayer = col.gameObject.layer;

        if (objLayer == playerLayer || objLayer == boxLayer || objLayer == ignoreLayer)
        {
            CentralGravity cg = col.GetComponent <CentralGravity>();
            //print(col.gameObject.name);
            cg.UpsideDown();
        }
    }
예제 #5
0
    //applies the jump force to the player, and adapts if the player's gravity is inverted
    void JumpForce()
    {
        if (!jumpNextFrame)
        {
            return;
        }
        jumpNextFrame = false;
        ++jumpCount;
        JumpSound();
        float magnitude = Mathf.Sqrt(2 * CentralGravity.GetGravityAcceleration() * minJumpHeight);

        if (gravity.reversed)
        {
            body.AddForce(transform.up * -magnitude * body.mass, ForceMode2D.Impulse);
        }
        else
        {
            body.AddForce(transform.up * magnitude * body.mass, ForceMode2D.Impulse);
        }
    }
예제 #6
0
    //applies jump force to the player
    void NewJumpForce()
    {
        float magnitude = 0;

        if (jumpNextFrame)
        {
            magnitude     = Mathf.Sqrt(2 * CentralGravity.GetGravityAcceleration() * minJumpHeight);
            jumpNextFrame = false;
            ++jumpCount;
        }
        else if (stillJumping && timer < timeToMaxJump)
        {
            float dif = maxJumpHeight - minJumpHeight;
            if (dif <= 0)
            {
                return;
            }
            magnitude = ContinuousVelocity() * Time.fixedDeltaTime;
            timer    += Time.fixedDeltaTime;
        }
        ApplyForce(magnitude);
    }
예제 #7
0
    void OnTriggerExit2D(Collider2D col)
    {
        if (col.gameObject.tag != "Player")
        {
            return;
        }

        /*
         * int objLayer = col.gameObject.layer;
         *
         * if (objLayer == playerLayer || objLayer == boxLayer || objLayer == ignoreLayer){
         *      CentralGravity cg = col.GetComponent<CentralGravity>();
         *      //print(col.gameObject.name);
         *      cg.RightsideUp();
         * }
         */

        CentralGravity cg = col.GetComponent <CentralGravity>();

        //print(col.gameObject.name);
        cg.RightsideUp();
    }
예제 #8
0
 void Start()
 {
     jump    = PlayerControlMap.jump;
     body    = GetComponent <Rigidbody2D>();
     gravity = GetComponent <CentralGravity>();
 }