微信小游戏自定义震动时间

做微信小游戏开发也有段时间了,小游戏非常注重手感,精美的界面,顺滑的操作,有时微微一震,会给玩家带来不一样的感觉。

这里就要说到微信小游戏中的震动API接口了,微信官方提供的震动接口有两个:

wx.vibrateShort(Object object)

使手机发生较短时间的振动(15 ms)。仅在 iPhone 7 / 7 Plus 以上及 Android 机型生效

wx.vibrateLong(Object object)

使手机发生较长时间的振动(400 ms)

只有两个!而我在开发时,发现vibrateShort这个接口基本没感觉,或说基本没作用,开发社区里也是一堆这样的问题,腾讯官方永远只有一句:提供下代码片段.....,我有一句xxxx不知当讲不当讲。

long有400ms,这个震动有点强,突然来一下,可能会吓到用户,我想要震动50ms,不好意思,暂不支持!只好另想办法。

有一个折中方案:50ms=15ms+15ms+15ms,也就是三次短震动,用一个定时器去连续震动三次就差不多达到效果了!

引擎:Laya

编辑器:LayaAir IDE

语言:TS

代码:

/**

* 震动时间

* @param time  毫秒数

*/

function vibrate(time: number) {

    let count = time / 15;

    let index = 0;

    let obj = { count: count, index: index };

    Laya.timer.loop(16, obj, function () {

        wx.vibrateShort();

        index++;

        if (index > count) {

                Laya.timer.clearAll(obj);

        }

    });

}

 

JS代码:

/**

* 震动时间

* @param time  毫秒数

*/

function vibrate(time){

 let count=time/15;

 let index=0;

 let interval=setInterval(function(){

   wx.vibrateShort();

   index++;

   if(index>count){

     clearTimeout(interval);

     interval=null;

   }

 },15);

嗯,效果还不错!顺便解决了vibrateShort不灵的问题!

实际效果:

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ytmfdw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值