对角色的移动的整理

来源:互联网 发布:linux切换到Sql命令 编辑:程序博客网 时间:2024/06/06 17:20

 

 

   void FixedUpdate()
    {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");
        Move(h, v);
        Animating(h, v);
        Turning();
    }
    void Move(float h, float v)
    {
        movement.Set(h, 0f, v);     //设置movement的值
        movement = movement.normalized * speed * Time.deltaTime;
        playerRigidbody.MovePosition(transform.position + movement);
    }



坦克大战移动



 void Move()
    {
        int dir = 0;

        if (Input.GetKey(KeyCode.W))
        {
            dir = 1;
        }
        if (Input.GetKey(KeyCode.S))
        {
            dir = 2;
        }
        if (Input.GetKey(KeyCode.A))
        {
            dir = 3;
        }
        if (Input.GetKey(KeyCode.D))
        {
            dir = 4;
        }
        if (dir == 0)
        {
            //Debug.LogError("方向计算出现错误");
            return;
        }
        else if (dir != curDir)
        {
            curDir = dir;
            img.sprite = Resources.Load<Sprite>("player/" + dirDic[curDir]);
        }

        if (dir == 1)
        {
            tml.transform.localPosition = new Vector3(0, 21f, 0);
            tml.transform.localRotation = Quaternion.Euler(0, 0, 0);
        }
        else if (dir == 2)
        {
            tml.transform.localPosition = new Vector3(0, -21f, 0);
            tml.transform.localRotation = Quaternion.Euler(0, 0, 0);
        }
        else if (dir == 3)
        {
            tml.transform.localPosition = new Vector3(-21f, 0, 0);
            tml.transform.localRotation = Quaternion.Euler(0, 0, 90);
        }
        else if (dir == 4)
        {
            tml.transform.localPosition = new Vector3(21f, 0, 0);
            tml.transform.localRotation = Quaternion.Euler(0, 0, 90);
        }

        Vector3 d = Vector3.zero;
        if (curDir == 1)
        {
            d = Vector3.up;
        }
        else if (curDir == 2)
        {
            d = Vector3.down;
        }
        else if (curDir == 3)
        {
            d = Vector3.left;
        }
        else if (curDir == 4)
        {
            d = Vector3.right;
        }


        float w = img.rectTransform.rect.width * cv.transform.localScale.x / 2;
        if (!tml.isCanMove)
        {
            return;
        }

        transform.Translate(d * speed * Time.deltaTime);
    }