微信小遊戲自定義震動時間

做微信小遊戲開發也有段時間了,小遊戲非常注重手感,精美的界面,順滑的操作,有時微微一震,會給玩家帶來不一樣的感覺。

這裏就要說到微信小遊戲中的震動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不靈的問題!

實際效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章