猫史档案馆


[教程向]如何做一个真正的令人“舒服”的平面移动脚本?

用户:rybo1rybo1查看:0 回复:1 评论:0 创建时间:2020-01-27T14:59:57


又是我rybo1..这次教大家做一个平面移动脚本,下面开始吧

Tips:本教程运用了函数,不会的请自行学习

首先简单的移动各位都会,大概是下面这样的↓

center_image

虽然角色移动很流畅,但很不舒服,因为它没有加速和减速,导致按下和松开时会直接暂停,十分生硬,这也是我一开始做移动时的做法,虽然可以用,但很不舒服。所以我们要做一点改变↓

center_imagecenter_image

接下来搭建如下脚本(需要用到函数)

center_image

两个0.9是滑动系数,越大停止按WASD后的滑动时间就越长,一般应在0.6-1.1之间(个人感觉0.71最舒服)

自己去试试可以看到,移动非常有段落感了,你可以修改函数的参数来改变移动
--------------------------------------------分割线-----------------------------------------------------------------------

接下来是冲刺的脚本,移动肯定不局限于移动,于是来讲讲平面移动的“冲刺”脚本
“冲刺”就是说在移动时按下某个键可以让速度瞬间变快,达到闪电般的移速(雾)

我们在使用xy移动时用方向判断进行冲刺为例(我只会这个qwq),我们需要一个“方向”变量,然后用按键来确定方向↓

center_image

但是四个方向的判断是远远不够的,我们至少要用八个,我们使用“且”积木块来判断斜向时的角度↓

center_image

↑应该没什么问题吧。。。

可是直接硬上的话会使系统对按键的判定混淆,比如按w和a,系统不知道你是面向什么方向的

(0?-90?-45?),所以要原有的函数上加入非门进行逻辑区分↓

(科普:非门当其输入端为1时输出端为0,当其输入端为0时输出端为1。

也就是说,输入端和输出端的状态总是反相的。)

center_image

↑斜向移动就不用改了,只用改直线移动

现在,方向判定的脚本就堆完了,接下来是冲刺执行部分
冲刺就是根据按下冲刺按键时的方向(此次以R示例)进行瞬间加速度移动,积木如下↓(仍然用到了函数qaq)

center_image

↑一定要单独做一个循环执行"执行冲刺"和"目前方向"函数!

↑记得把"执行冲刺"的两个参数设置不一样的值(斜向短),因为斜向冲刺一般比正向长

↑那个“等待1S”是冷却时间,可自行调节

如此类推,我们把其他方向的冲刺做出来↓

center_image

↑将”保持等待直到..“和"等待X秒"积木块放在外面即可

在加入斜向冲刺,斜向冲刺需要增加斜向(另一个轴)的加速度↓

center_image

大功告成!

--------------------------------更加进阶的分割线-----------------------------------------------------------------------

以下脚本来自EnderRybo(QQ1526580005)

已经本人同意

根据上面的积木可以看到,角色迅速移动了起来,但是冲刺中时反向冲刺的速度似乎下降了,而且在冲刺方向发生了偏移。

发生方向偏移是因为函数使用了两个加速度,冲刺时没变另一条,所以冲刺时另一个加速度还是会对角色进行影响的,移动速度慢是因为加速度不是段落增加的,但如果加速度与冲刺增加的速度差太多时,冲刺就不明显。

这样改↓

center_image↑以此类推,改完正向

center_image

↓斜向没有另一条加速度的影响,所以。。。

center_image

↓类推center_image↓在加入一些冲刺特效

center_image

大功告成!!!!

 

-------参考网站-------

https://baike.喵/item/%E9%9D%9E%E9%97%A8/1421165?fr=aladdin

https://baike.喵/item/%E6%88%96%E9%97%A8/4962107?fr=aladdin

-------鸣谢-------

EnderRybo (提供后端脚本)QQ1526580005


回复

上一页1 页 / 共 1下一页
rybo1rybo1

自顶qnq

 

点赞0


评论