游戏制作之路(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

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

查看所有标签

猜你喜欢:

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

Foundations of PEAR

Foundations of PEAR

Good, Nathan A./ Kent, Allan / Springer-Verlag New York Inc / 2006-11 / $ 50.84

PEAR, the PHP Extension and Application Repository, is a bountiful resource for any PHP developer. Within its confines lie the tools that you need to do your job more quickly and efficiently. You need......一起来看看 《Foundations of PEAR》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

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

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换