猫史档案馆


【跑酷主题活动教程】step 2 人物的跳跃

用户:活动喵活动喵查看:20 回复:48 评论:20 创建时间:2019-10-29T14:08:49


点击查看视频版教程

 

(点击此处关注编程猫B站账号,获取更多视频教程)     运用变量完成二段跳  

大家一定都玩过《i wanna》系列吧?里面我们操作的角色,需要突破层层难关才能战胜困难,突破自己。

正如:我们遇到什么困难,都不要怕,微笑着面对他,消除恐惧的最好办法,就是面对恐惧,加油!

 

不知道大家还对里面的角色有印象不?一个能跳能射击的人物,细心的玩家可能注意到,这个人物能够连续跳跃两次,即进行二段跳。那么就让我们来分析分析二段跳是怎么通过我们的源码积木来实现的吧!

 

在游戏内如果想令角色跳跃或者二段跳,最简单的就是使用积木内的物理系统,即加入重力,不过有时候物理系统需要考虑的方面太多且易出现问题从而影响游戏体验,我们只是需要简单的跳跃功能,那么该怎么办呢?

 

这个时候我们可以尝试引入变量来设计一个 “物理引擎”

 

首先准备好两个变量,为了便于理解,我命名为起跳、跳跃,初始值都为0

 

center_image

 

 

起跳变量的作用 : 判断角色是否收到了起跳命令(即用户按下了跳跃键)

 

跳跃变量的作用:判断角色是否已进行跳跃,从而可以触发二段跳

 

 

让我们来看看积木,首先分析一下按键

center_image

 

想要让角色跳起来,肯定需要我们给它一个指令,我们把空格键设定成跳跃键、跳跃值初始值设定为1,如果从平地进行第一次跳跃,我们就把跳跃的变量值+1,如果要进行二段跳,我们就再把跳跃的变量值+1。

我们这样规定:

当角色在平地——跳跃值=0

角色进行第一次跳跃时——跳跃值=1

角色进行二段跳时——跳跃值=2

 

 

小贴士:“保持等待直到放开空格键”,即防止用户按着空格键太久,导致变量一直增加,我们把空格键从按下到放开设计成一个流程,只有完成了这个流程才会使得跳跃的变量值+1

 

 

然后我们看看跳跃是如何实现的:(注:这个讲解案例内编程猫的Y坐标为-270)

center_image

 

 

这个时候,我们来想想,或者同学们自己亲自试试:使劲向上跳。

跳了吗?哈哈,还记得这一过程是怎么样的吗?

 

蓄力弯腰 → 起跳 → 到达一定高度停止上升 → 开始下落 → 到达平地

 

大家想想是不是这么一个过程?

 

我们可以把跳跃这个过程这样理解:

 

我们以一个很快的速度开始上升,然后我们的上升速度越来越慢,直到无法继续上升,然后开始下落,并且下落速度越来越快,最后我们回到平地

 

即:起跳过程中,上升速度会越来越慢直到为0,然后下降速度会从0逐渐增加直到我们下落回到地面。

 

用数值表示速度,就是数值由大到小至0(上升过程),然后由0逐渐升高(下降)直到结束(落地)。

 

我们把起跳值设置为20,当跳跃值为1,即开始起跳时,我们就让角色Y坐标不断增加起跳值每增加一次我们就让起跳值-1,直到最后Y坐标增加为0,即到了我们起跳的最高点;

 

然后就开始下降准备,我们如果想从高处Y坐标到低处Y坐标,就只要让起跳值变成负数,然后让Y坐标增加这个 “负值” 就可以了。

 

积木内的跳跃值的判断,是为了检测角色是否有进行二段跳。

起跳值递减递增内我们加入了一个判断:如果跳跃值≠1,即触发了二段跳(因为我们设定了进行二段跳的条件是,跳跃值=2),就退出该循环(即退出当前跳跃)进行二段跳。

 

小贴士:上升和下降过程中,都会有一个起跳值不断降低过程,所以上升和起跳的重复次数要确保一致。我们在下降的重复执行结束后,加入了一块:将Y坐标设置为-270 的积木,是为了确保结束跳跃后,能让角色与起跳前的位置保持一致。别忘了要把起跳值归0以备下次跳跃。

 

 

 

 

 

让我们来分析一下二段跳:

center_image

 

 

由初始设定我们得知,当起跳值为2时,我们可以让角色进行二段跳。

 

二段跳顾名思义,即为在一个跳跃基础上,再次进行一次跳跃过程(跳跃的高度看同学们怎样去设计啦)。

 

当起跳值为2时,同理第一次起跳,我们给Y坐标一个变量从20起,不断减小变量数值的递增过程直到变量为0停下来。

不过此时下降过程,就不是像一段跳那样重复20次就可以了。二段跳时一个关键点:我们是何时进行二段跳可能是在一段跳的上升时?最高点时?下降时?这时候二段跳上升期的Y坐标是不定的,我们无法得知。

 

解决这问题,只需加入一个Y坐标的判断即可,因为无论你合适起跳,总会下降的呀,我们只要在下降到一定的Y坐标值,就停止下降的递减循环即可。

 

我们初始的Y坐标为-270,起跳值为20,故二段跳下落判断我们定位-250。

小贴士:即便你起跳到-269时进行二段跳,增加的20跳值,此时你的Y坐标值为-249,也可以进行下落判断。

 

当Y坐标为-250时我们停止了循环,有些人就会想:这不还没到初始的Y坐标吗?怎么就停下来了?最后一步归为,为了防止一些小误差,当退出循环后我们就手动设置角色的Y坐标-270。

 

由于角色最后是下落的,根据我们眼球感受到的角色移动,最后这20的直接移动是完全符合下降的顺畅度,毕竟下降过程就是一个不断加快的过程

 

让我们来看看效果:

center_image

 

游戏内的效果:

center_image

 

小贴士:游戏内以及下方的实现效果积木内的编程猫的Y坐标为-183哦

center_image

 

更多相关教程:

【跑酷主题活动教程】step1 人物、背景的移动
https://shequ.codemao.cn/community/201014


【跑酷主题活动教程】step 2 人物的跳跃
https://shequ.codemao.cn/community/201015


【跑酷主题活动教程】step 3 金币、障碍物、生命值
https://shequ.codemao.cn/community/201016


【跑酷主题活动教程】step 4 喵、双倍、加速
https://shequ.codemao.cn/community/201017


回复

上一页1 页 / 共 2下一页
codemao99codemao99

emotion_编程猫_点赞emotion_编程猫_点赞

点赞0


评论


苏球与德球苏球与德球

点赞0


评论


小猫猫么么哒小猫猫么么哒

emotion_编程猫_厉害了

点赞0


评论


学霸yellow学霸yellow

print("好难!")

点赞0


评论


吃瓜女孩吃瓜女孩

emotion_编程猫_翻白眼

点赞0


评论


林睿康林睿康

emotion_编程猫_加油emotion_编程猫_加油emotion_编程猫_加油emotion_编程猫_加油

点赞0


评论


小朋友樱花小朋友樱花

看着眼都花了emotion_编程猫_翻白眼emotion_编程猫_溜了溜了

点赞0


评论


Inksans审判官Inksans审判官

666emotion_编程猫_我错了emotion_编程猫_溜了溜了emotion_编程猫_溜了溜了

点赞0


评论


小玲珰姐姐和木鱼哥哥小玲珰姐姐和木鱼哥哥

emotion_编程猫_搓头emotion_编程猫_搓头emotion_编程猫_搓头emotion_编程猫_搓头emotion_编程猫_搓头

点赞0


评论


宇宙与繁星宇宙与繁星

emotion_编程猫_伤心我一直以来不会做......点了免费获取后更懵了。

点赞0


评论


执着的功夫熊sodV执着的功夫熊sodV

emotion_雷电猴_疑问emotion_雷电猴_疑问emotion_雷电猴_疑问我不会呀!!!!

点赞1


评论


喵喵牛喵喵牛

emotion_编程猫_厉害了emotion_编程猫_厉害了emotion_编程猫_厉害了emotion_编程猫_厉害了emotion_编程猫_厉害了emotion_编程猫_厉害了emotion_编程猫_厉害了emotion_编程猫_厉害了

点赞0


评论


浪漫者浪漫者

emotion_编程猫_伤心我不会emotion_编程猫_伤心

点赞0


评论


阿尔法官方阿尔法官方

当跳跃等于1 可以简化的积木,能看懂的自然懂center_image

点赞2


评论


活力的独角蛛8R-r活力的独角蛛8R-r

活动喵,你可以告诉我你的素材在哪找的吗,你有什么诀窍吗我有好多问题想问你

点赞0


评论


春天的大恐龙春天的大恐龙

emotion_编程猫_搓头

点赞0


评论


开舒克的飞稽开舒克的飞稽

奥利给!

点赞3


评论


火柴贱火柴贱

monky vs 雷

点赞0


评论


G_W_LG_W_L

啊啊

点赞0


评论


知晓痛楚知晓痛楚

emotion_编程猫_在吗

点赞0


评论


十个人一条命十个人一条命

是角色变量么?

点赞0


评论


kiiisukiiisu

为什么设置了Y坐标为-270之后,编程猫只落下一半???是我的问题咩!?emotion_编程猫_紧张

点赞1


评论


黎光亮黎光亮

跳之后还会往前进

点赞0


评论


士族小号士族小号

emotion_雷电猴_疑问为什么我的编程猫一跳就往下掉,不科学emotion_星能猫_哼

点赞0


评论


咥

我的 二段跳  落下会卡一下地底下  再回到地面上为什么   

点赞0


评论


06号地铁06号地铁

为什么我的作品发布了还没办法投稿呢?emotion_星能猫_哼

点赞0


评论


EX007EX007

我每次都要飞emotion_星能猫_哼

点赞0


评论


友爱的麦霸菇46cA友爱的麦霸菇46cA

emotion_雷电猴_疑问

点赞0


评论


大侦探福尔喵斯大侦探福尔喵斯

emotion_星能猫_哼emotion_雷电猴_疑问

点赞0


评论


大侦探福尔喵斯大侦探福尔喵斯

emotion_星能猫_哼

点赞0


评论