今天搞一下那个game2项目。
主要是想把那个跳跃的手感给调一下,之前的感觉太飘,不得劲。人物跳起来慢悠悠的,下落也慢悠悠的,操作起来总感觉差点意思。
上来先是,我试着把那个重力值往上加不少。我想着重力大,下落不就快嘛跳起来的高度也能受影响,可能就不飘。
结果好家伙,人物掉下来贼快,是没那么飘,但感觉硬邦邦的,跟个石头似的往下砸,完全没有缓冲,跳起来的高度也变得很难控制,稍微按一下就几乎没高度,多按零点几秒又可能冲太高。试几次,不行,这个路子太糙。
然后我就琢磨,是不是可以搞个按住跳跃键时间长短,影响跳跃高度的玩意儿。就是那种,轻点一下,小跳;按住不放,跳得更高,松手就停止上升开始下落。很多平台游戏都这么干的。
捣鼓代码
我就回去翻代码,找到控制跳跃的那块儿。之前的逻辑很简单,就是检测到跳跃键按下,并且角色在地面上,就给一个向上的速度或者力。
现在得改改。我加点判断逻辑:
- 还是检测到跳跃键按下并且在地面时,给一个初始的向上的力,让角色能离开地面。
- 然后,我加个变量,记录角色是不是正在跳跃上升过程中。
- 在上升过程中,只要玩家还按着跳跃键,就持续给一个比较小的向上的力,或者稍微减小一点重力的影响。这样就能跳得更高。
- 还得加个限制,比如跳跃的最大持续时间,或者达到的最大高度,不能无限往上飞。
- 一旦玩家松开跳跃键,或者达到最大跳跃限制,就不再给这个持续的力,让重力完全发挥作用,角色就开始下落。
这块儿搞挺久,主要是那个初始力的大小、持续力的大小、还有最大持续时间的数值,不好调。要么初始力太大,轻轻一按就飞老高;要么持续力太小,按住半天也没啥效果;要么就是时间设不对,手感很怪。
我反复运行好几遍游戏,每次改点参数,就进去跳几下试试感觉。调得有十几二十次,有时候调得还不如之前,有点烦躁。
嘛,算是勉强有点那个意思。按得时间长短,跳的高度确实不一样。轻点是小跳,长按是大跳,松手就掉下来。虽然,手感还是有点微妙,感觉那个上升过程的速度变化不是特别自然,可能还得再调调那个施加力的曲线啥的,不能这么线性。
今天就先搞到这,脑子有点累。盯着代码看久眼睛也花。
明天再看看,把那个空中控制也稍微优化下,现在左右移动感觉有点滑,跳起来不太好精确落到想去的地方。
反正就是这么一点点磨出来的,做游戏就是这样,看着简单,调起来真费劲。搞定一个是一个。
还没有评论,来说两句吧...