以下内容来自公众号:小游戏可视化开发工具
前言
节流和防抖,本来是属于前端的一对双胞胎兄弟。但是在我们制作游戏的时候,经常会遇到事件触发频率过高导致卡死的状态。
什么节流和防抖
防抖只会在连续的事件周期结束时执行一次,而节流会在事件周期内按间隔时间有规律的执行多次
防抖和节流一般会用在高频率触发事件的情景。
比如用户输入查询,当持续在输入框里输入时,并不会发送请求,只有当在指定时间间隔内没有再输入时,才会发送请求,这就是防抖。
如果在持续的输入过程中,每隔一段时间就发送一次请求,那么这就是节流。
我们在制作游戏的过程中,也会遇到高频率触发的事件。比如条件判断事件,只要条件符合会不断触发。
那么,如果想要事件触发达到我们想要的次数,该怎么做呢?
游戏里的节流和防抖
根据节流和防抖的概念,我们知道节流是每隔一段时间触发一次,而防抖只会触发一次。
所以,如果只想触发1次,我们用一个变量来限制事件触发:
如果想每隔一段时间就触发一次,我们增加一个等待时间:
模拟应用场景
我们现在有一个发动技能的动画效果:鼠标按下时切换到蓄力状态,松开则切换到发动状态。技能触发完毕回归到正常状态,并且技能有2秒的cd。
我们先给精灵添加3种造型:
添加鼠标事件:
效果如下:
这样就实现了我们想要的功能。在游戏中,节流和防抖还有很多的应用场景,期待大家多多发现哦
关注微信公众号和B站账号,更多教程等着你
B站:https://space.bilibili.com/1987758192
公众号: