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