GMS2中实现时间变慢
你大概需要3min来阅读这篇文章
这里是Feishiko,今天来分享一下关于如何在GMS2中实现时间缓动的效果。
这个效果本身实现起来不难,所以这边主要是来点一下思路。
图像绘制
个人比较懒,所以就直接画出来了
oPlayer DrawEvent
oBullet DrawEvent
准备工作
接下来点一下要怎么实现,首先子弹和玩家都会有一个速度,当时间减慢的时候,玩家的速度和子弹的速度都会变慢,所以我们要用他们的速度除以一个>1的数,或者乘以一个小数。
首先玩家和子弹都需要一个速度,我这边都记为spd变量,然后让他们除以一个全局变量,如果你不想用全局变量也可设置一个object保持,假设是oGameCont,那就oGameCont.那个变量,这个是控制全局物体速度的核心变量。
具体实现起来像这个样子。
于是我们得到了计算之后真正的速度
核心代码
接下来如何让角色移动,子弹移动,都采用这个计算出来所得到的速度。
这是玩家移动的大致代码
完美移动
虽然会繁琐一点,但是这样移动不会出现斜向更快的现象。
子弹的移动代码
之所以运用这种方法而不用GMS自带的变量是因为这样会更好更方便操纵,也会更好的管理。当然视具体情况而定,有时候也可以小用一下GMS的内置变量,比如我照样用这里的direction。
时缓和正常状态,我这里用了一个比较丝滑的方法过渡。
线性插值
最后效果

大概就是这么多,希望你喜欢本期内容!
个人itch.io链接: https://feishiko.itch.io/
个人Twitter链接: https://twitter.com/FeishikoMonster
2022/10/15