Example #1
0
    void movePlayer()
    {
        if (input.glide && _HUD.usePower(powers.GLIDE_VALUE))
        {
            anim.playDefault();

            powers.isUsingPowers = true;
            input.isWallJump     = false;

            if (input.canMove)
            {
                rb.velocity = new Vector3(xMove, 0.0f, 0.0f);
            }

            gravityOn = false;

            changeMusic.isNormalMusic = false;
            changeMusic.isTeleport    = false;
        }
        else if (input.onWallClinging)
        {
            changeMusic.isNormalMusic = true;

            rb.velocity = new Vector3(xMove, 0.0f, 0.0f);
        }

        else if (input.isWallJump)
        {
            changeMusic.isNormalMusic = true;

            justLanded           = false;
            input.glide          = false;
            wallJumping.isJumped = true;

            if (wallJumping.wallIsRight)
            {
                rb.velocity = new Vector3(-1.5f * xSpeed, rb.velocity.y, 0.0f);
            }
            else if (!wallJumping.wallIsRight)
            {
                rb.velocity = new Vector3(1.5f * xSpeed, rb.velocity.y, 0.0f);
            }

            if (gravityOn)
            {
                rb.AddForce(-Vector3.up * GRAVITY);
            }
        }
        else
        {
            changeMusic.isNormalMusic = true;

            input.glide = false;
            rb.velocity = new Vector3(xMove, rb.velocity.y, 0.0f);
            if (gravityOn)
            {
                rb.AddForce(-Vector3.up * GRAVITY);
            }
        }

        if (input.jump)
        {
            justLanded = false;

            if (jumpHeight >= MAXY && jumpTime <= 0)
            {
                jumpFloatTime -= Time.deltaTime;

                rb.velocity = new Vector3(xMove, 0.0f, 0.0f);

                gravityOn = false;

                if (jumpFloatTime <= 0)
                {
                    //print("End Float");
                    input.jump = false;
                }
            }
            else if (jumpHeight < MAXY)
            {
                isGrounded         = false;
                isSomewhatGrounded = false;

                rb.velocity += new Vector3(0, jumpHeight, 0);
                jumpIncrease = jumpIncrease / DecreaseValue;
                jumpHeight  += jumpIncrease;

                if (jumpHeight <= 0)
                {
                    jumpHeight = 0.0f;
                }

                //print(jumpHeight);
            }
            else
            {
                jumpTime -= Time.deltaTime;
            }
        }
        else if (!input.jump)
        {
            gravityOn = true;

            jumpHeight    = STARTINGJUMPHEIGHT;
            jumpIncrease  = MAXJUMPINC;
            jumpFloatTime = MAXJUMPFLOATTIME;
            jumpTime      = MAXJUMPTIME;
        }

        if (_HUD.knockBack)
        {
            Vector3 newPos = transform.position;

            if (!firstUpdate)
            {
                if (_HUD.frontHit)
                {
                    newPos.x -= 2.0f;
                }
                else if (_HUD.backHit)
                {
                    newPos.x += 2.0f;
                }

                //print(_HUD.frontHit);
                //print(_HUD.backHit);
                _HUD.frontHit = false;
                _HUD.backHit  = false;
            }

            Vector3 newPos2 = Vector3.Lerp(transform.position, newPos, 5 * Time.deltaTime);

            transform.position = newPos2;

            firstUpdate = true;

            if (gravityOn)
            {
                rb.AddForce(-Vector3.up * GRAVITY);
            }

            if (newPos2 == newPos)
            {
                firstUpdate    = false;
                _HUD.knockBack = false;
            }
        }

        Vector3 pos = transform.position;

        pos.z = 0.0f;
        transform.position = pos;

        gun.transform.localPosition = gunOffset;
    }