你大概需要3min来阅读这篇文章
这里是Feishiko,今天来分享一下关于如何在GMS2中实现时间缓动的效果。
这个效果本身实现起来不难,所以这边主要是来点一下思路。
图像绘制
个人比较懒,所以就直接画出来了
oPlayer DrawEvent
draw_circle_color(x, y, 16, c_red, c_red, false);//绘制一个实心红球
oBullet DrawEvent
draw_circle_color(x, y, 5, c_blue, c_blue, false);//绘制一个实心蓝球
准备工作
接下来点一下要怎么实现,首先子弹和玩家都会有一个速度,当时间减慢的时候,玩家的速度和子弹的速度都会变慢,所以我们要用他们的速度除以一个>1的数,或者乘以一个小数。
首先玩家和子弹都需要一个速度,我这边都记为spd变量,然后让他们除以一个全局变量,如果你不想用全局变量也可设置一个object保持,假设是oGameCont,那就oGameCont.那个变量,这个是控制全局物体速度的核心变量。
具体实现起来像这个样子。
var realSpeed = spd/global.gearTimes;
于是我们得到了计算之后真正的速度
核心代码
接下来如何让角色移动,子弹移动,都采用这个计算出来所得到的速度。
这是玩家移动的大致代码