游戏制作之路(19)角色实现向上跳动

栏目: 后端 · 发布时间: 6年前

内容简介:前面介绍了角色可以四个方向进行移动了,但是角色不能向上跳动,意味着角色还是在一个二维空间里走动,要让角色像人一样,可以跳起来,实现三维移动。我们来仔细观看一下人的跳动,当你双脚用力蹦一下时,人的身体就有一个初始速度,向天空上飞起来,但由于地球给人一个引力,所以速度会慢慢地减慢,减到0,然后又开始向地面加速落下来。在游戏世界里是一样的,我们要给角色一个y轴的初始速度,它就会向上跳起,然后模拟重力,把速度慢慢地变慢,就角色就会停下来,最后慢慢最加速掉下来。接着下来,我们要把这些内容转换为代码,先来看一下前面的

前面介绍了角色可以四个方向进行移动了,但是角色不能向上跳动,意味着角色还是在一个二维空间里走动,要让角色像人一样,可以跳起来,实现三维移动。我们来仔细观看一下人的跳动,当你双脚用力蹦一下时,人的身体就有一个初始速度,向天空上飞起来,但由于地球给人一个引力,所以速度会慢慢地减慢,减到0,然后又开始向地面加速落下来。在游戏世界里是一样的,我们要给角色一个y轴的初始速度,它就会向上跳起,然后模拟重力,把速度慢慢地变慢,就角色就会停下来,最后慢慢最加速掉下来。

接着下来,我们要把这些内容转换为代码,先来看一下前面的移动的代码:

Vector3 input = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
        gameObject.GetComponent<CharacterController>().Move(transform.TransformDirection(input * speed * Time.deltaTime));

可以发现这行代码,只有四个方向移动,也就是水平和垂直方向的移动,要在这里添加Y轴方向的移动向量,就可以了。因此,增加一个向上跳起和落下的速度变量,如下:

private float yVelocity = 0;

接着下来,定义一个初始速度的常量和一个重力加速度的常量,如下:

public float jumpSpeed = 15.0f;
    public float gravity = 30.0f;

然后在Update函数里更新移动代码,主要增加Y轴方向的坐标改变,如下:

gameObject.GetComponent<CharacterController>().Move(transform.TransformDirection(input * speed * Time.deltaTime + yVelocity * Vector3.up * Time.deltaTime));

在这里与前面的代码对比,发现后面多了跳起的代码:

yVelocity * Vector3.up * Time.deltaTime

在这里第一个变量是角色Y轴的速度,Vector3.up是Y轴的向上的方向量,Time.deltaTime是随着每秒时间更新移动位置。

接着增加跳动的触发代码,就是增加按钮检测,如下:

if (Input.GetButtonDown("Jump"))
        {
            yVelocity = jumpSpeed;
        }

当玩家按下空格键时,角色就获得初始速度,这样就向上的方向进行飞起,如果没有增加重力作用,角色会一起飞向太空,因此需要增加重力为约触角色的向上的速度,如下:

yVelocity -= gravity * Time.deltaTime;

这里就是把向上的速度进行减少,还会慢慢地向下加速移动。这就是增加重力作用的效果,这时你可以按下play来跳动了。如下图:

游戏制作之路(19)角色实现向上跳动

到这里,就实现了角色进行跳动。

TensorFlow API攻略

http://edu.csdn.net/course/detail/4495

TensorFlow入门基本教程

http://edu.csdn.net/course/detail/4369

C++标准模板库从入门到精通 

http://edu.csdn.net/course/detail/3324

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数论概论

数论概论

希尔弗曼 / 孙智伟 / 机械工业出版社 / 2008-5 / 42.00元

《数论概论(原书第3版)》讲述了有关数论大量有趣的知识,以及数论的一般方法和应用,循序渐进地启发读者用数学方法思考问题,此外还介绍了目前数论研究的某些前沿课题。《数论概论(原书第3版)》采用轻松的写作风格,引领读者进入美妙的数论世界,不断激发读者的好奇心,并通过一些精心设计的练习来培养读者的探索精神与创新能力。一起来看看 《数论概论》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试