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

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

内容简介:前面介绍了角色可以四个方向进行移动了,但是角色不能向上跳动,意味着角色还是在一个二维空间里走动,要让角色像人一样,可以跳起来,实现三维移动。我们来仔细观看一下人的跳动,当你双脚用力蹦一下时,人的身体就有一个初始速度,向天空上飞起来,但由于地球给人一个引力,所以速度会慢慢地减慢,减到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

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

查看所有标签

猜你喜欢:

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

Ruby元编程(第2版)

Ruby元编程(第2版)

[意] Paolo Perrotta / 廖志刚 / 华中科技大学出版社 / 2015-8-1 / 68.80

《Ruby元编程(第2版)》在大量剖析实例代码的基础上循序渐进地介绍Ruby特有的实用编程技巧。通过分析案例、讲解例题、回顾Ruby类库的实现细节,作者不仅向读者展示了元编程的优势及其解决问题的方式,更详细列出33种发挥其优势的编程技巧。本书堪称动态语言设计模式。Ruby之父松本行弘作序推荐。一起来看看 《Ruby元编程(第2版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码