上一篇说到
利用方向判断来进行移动
https://indienova.com/home/blogread/4064
这篇说一下移动的惯性效果,使得移动的时候更加自然,毕竟是优化效果,因此做为外篇来介绍。
1.加速
根据匀变速直线运动: s = vt +1/2at^2
由于用不到公式中的时间变量,这里转换一下,只看思路。
我们可以看出是变速运动是一个匀速位移加上一个变速位移。
我们的匀速位移。
这是匀速位移,要是要做到加速位移,就需要加上一个变速位移。
因此,我们定义一个变量,再让这个变量不断增加。
spd这个数不断加1。这样x的位移就会以原来的位移再每帧加1的不断加大位移,形成加速的效果。
记得定义变量在Create中添加。
其中的数字都可以调整,我的角色初始状态是不动的,没有初速度,这样的话可以写成。
2.限制最大速度
现在的加速效果是没有限制的,因此会加速到无限大。
但我们只希望角色移动模拟起步加速,需要给速度设一个最大值。
这里用到 clamp() 函数。
clamp() 是一个可以限制变量数值范围的函数。
具体格式 clamp(val, min, max)
val是你要限制的变量;
min是你希望变量的最小值;
max是你希望变量的最大值;
我们来限制一下这个变量的值。
这样spd就会限制到某个值里了,不过这里spd最大会是11。
要直接设定锁在最大为10,可以这样写。
再结合一下【GMS2】角色移动——利用方向判断来进行移动的内容,可以这样写。
这样就可以做到加速移动的效果了。
例子里的数值只做参考,测试的效果不是很明显,可以改数值多测试。
下一篇说怎么做线性减速。
暂无关于此日志的评论。