コード例 #1
0
    private void updatePlayerDirection(Vector2 rightStick)
    {
        if (rightStick.y > 0)
        {
            if (player.isAbSnowman)
            {
                anim.SetBool("FacingForward", false);
            }
            else
            {
                snowmanMelt.FaceDirection(false);
            }

            playerMovement.facingUp = false;
        }
        else if (rightStick.y < 0)
        {
            if (player.isAbSnowman)
            {
                anim.SetBool("FacingForward", true);
            }
            else
            {
                snowmanMelt.FaceDirection(true);
            }

            playerMovement.facingUp = true;
        }
    }
コード例 #2
0
    // Update is called once per frame
    void Update()
    {
        if (!player.isAlive)
        {
            return;
        }

        float moveX, moveY;

        if (Input.GetKeyDown(KeyCode.Space))
        {
            onSnow = !onSnow;
        }

        float actualSpeed;

        if (onSnow)
        {
            moveX       = Input.GetAxisRaw(player.getInputName(Player.InputName.LeftHorizontal));
            moveY       = Input.GetAxisRaw(player.getInputName(Player.InputName.LeftVertical));
            actualSpeed = speedOnSnow;
        }
        else
        {
            Debug.Assert(player != null);
            moveX = Input.GetAxis(player.getInputName(Player.InputName.LeftHorizontal));
            moveY = Input.GetAxis(player.getInputName(Player.InputName.LeftVertical));

            //moveY = Input.GetAxis("Vertical");
            actualSpeed = speedOnIce;
        }
        //Debug.Log("actual speed: " + actualSpeed);
        if (!player.isAbSnowman)
        {
            actualSpeed *= 7 / (float)(player.playerHealth + 8);
            if (actualSpeed < 0)
            {
                actualSpeed = 0;
            }
            //Debug.Log("act speed after calc: " + actualSpeed);
        }

        if (moveY < 0 && !facingUp)
        {
            if (!player.isAbSnowman)
            {
                snowmanMelt.FaceDirection(true);
            }
            else
            {
                anim.SetBool("FacingForward", true);
            }

            facingUp = true;
        }
        else if (moveY > 0 && facingUp)
        {
            if (!player.isAbSnowman)
            {
                snowmanMelt.FaceDirection(false);
            }
            else
            {
                anim.SetBool("FacingForward", false);
            }
            facingUp = false;
        }

        rb.velocity = new Vector2(moveX * actualSpeed, moveY * actualSpeed);

        if (rb.velocity != Vector2.zero)
        {
            ++walkingTicks;
        }
        if (walkingTicks >= 20)
        {
            walkingTicks = 0;

            if (onSnow)
            {
                audioSource.clip = walkingSoundSnow;
            }
            else
            {
                audioSource.clip = walkingSoundIce;
            }
            audioSource.Play();
        }
    }