Construct2/3

创建于:2017-02-24

创建人: iconboy

103 信息 416 成员
Construct2/3 引擎开发专题

[制作分享]跳跃的小技巧:贴墙跳

potion 2018-09-04

继续延续跳跃的话题,来说说跳跃中的小技巧。

首先看看这两个GIF。

jump1.gifjump2.gif

这是一个贴墙跳上平台的实例,乍一看可能看不出区别。但实际手感却有很大的区别。

我们可以拆解一下前后两个GIF的跳跃轨迹可以看到以下的区别:

image.png

可以看到,前面一个GIF在起跳后有一个向右后再向左的弧线,后者则直上直下。


说到这里,需要科普一下平台游戏的基础知识。


在平台游戏里,角色的左右移动,除了移动速度外还有两个重要的参数:Acceleration和Deceleration,说白了就是加速度和减速度。

在很多希望体验敏捷快速的游戏中,这两个参数会被调到很大,其结果是一旦玩家按下移动就立刻启动到最大速度,一旦松手就完全静止。

但也有反其道而行的游戏,比如超级马里奥系列。主角马里奥从静止到启动至最大速度会有一个过程,而松手后也会有“惯性”(在某些冰块地表上更明显)

而大部分平台游戏则是介于两者之间,短暂的起速和短暂的骤停。


回到前面的跳跃问题,我为什么要把条约做成弧线而不是直线呢?


因为角色在贴墙跳跃的时候,移动速度是0。没错,即使你怼着墙跑,移动速度也是0。

这就意味着你贴墙跳起到达平台后,左侧有了移动空间后才可以提升移动速度。

所以,直上直下的跳跃方案,其结果是在跳跃到平台区域之前,角色的移动速度一直为0。左侧有空之后才能启动加速,这就导致贴墙跳上平台后无法立刻进入高速的移动,角色会在原地停一下。

而我改善的方案,由于跳起后先向后移动,所以可以在到达最高点之前左侧就有了移动空间。角色就可以提前进入起速,在到达平台上的时候就可以无缝前行了。


另一个原因


再看看左侧完全是墙的情况:

jump3.gif

当左侧完全是墙的时候,按照这个技巧也会产生一个后弹弧线。

这同时解决了另一个问题:当角色需要爬墙的时候不会立刻吸附在墙上。

关于爬墙是怎么实现的:

  • 角色处于“跳”或“落”的状态
  • 角色左侧或右侧贴着墙
  • 满足以上条件就进入爬墙状态

根据以上逻辑,如果我们采用直上直下的贴墙跳方案,在跳起的一瞬间角色就会进入爬墙状态,其结果是角色根本没跳起来,而是在地面高度爬了墙,并因为角色还处于地面导致立刻解除爬墙。

近期喜欢的会员

 
totoyan 2018-09-04

这是一种思路!感谢大佬分享

 
最後 2018-09-08

感谢分享!

 
阿蠢ac 2018-11-06
求知!新群号
 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册