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

2024-03-19 03:59

本文主要是介绍微信小游戏自定义震动时间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这里就要说到微信小游戏中的震动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不灵的问题!

实际效果:

这篇关于微信小游戏自定义震动时间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/824721

相关文章

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

java时区时间转为UTC的代码示例和详细解释

《java时区时间转为UTC的代码示例和详细解释》作为一名经验丰富的开发者,我经常被问到如何将Java中的时间转换为UTC时间,:本文主要介绍java时区时间转为UTC的代码示例和详细解释,文中通... 目录前言步骤一:导入必要的Java包步骤二:获取指定时区的时间步骤三:将指定时区的时间转换为UTC时间步

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息