从零开始的RPG制作(3.1跳跃-落地)

作为一个RPG游戏,跳跃这种基础要素当然是要有的。那如何起跳呢。
我们现在的控制角色的模式是这样的。

    public void playerMove() {
        //**//
        //player.position += moveDirection ;
        //rig.velocity = Vector3.zero;
        //**//

            rig.velocity = new Vector3(moveDirection.x, moveDirection.y+ rig.velocity.y, moveDirection.z);
            moveDirection = Vector3.zero;
    }

也就是说我们只需要给予一个moveDirection.y上的冲量就可以了。
黑喂狗,开始,我们这里用按空格键表示跳跃。

我们在PlayerTestView内加入这样几行码子

  float jumpPower  = 3.5f
    public void startJump(bool jump) {
        if (jump)
            moveDirection.y += jumpPower;
    }

然后我们在PlayerTestMediator的playerAction中添加这样一行。

   void keyController() {
       float targetup = (Input.GetKey("w") ? 1 : 0) - (Input.GetKey("s") ? 1 : 0);
       float targetright = (Input.GetKey("d") ? 1 : 0) - (Input.GetKey("a") ? 1 : 0);
       up = Mathf.Lerp(up, targetup,0.6f);
       right = Mathf.Lerp(right, targetright, 0.6f);

       if (Input.GetKeyDown(KeyCode.LeftShift)) {
           run = !run;
       }
       jump = Input.GetKey(KeyCode.Space);
   }

   void playerAction() {//加入update跟新列表
       playerView.animaBlendAction(right, up, run);//设置偏移
       playerView.startJump(jump);//设置跳跃-------新加入
       playerView.playerMove();//角色接受冲量
   }

做完这些,我们来看看效果。


效果

上一节

下一节

你可能感兴趣的:(从零开始的RPG制作(3.1跳跃-落地))