cocos creator 实现手机震动的效果(最全说明)

cocos creator 实现手机震动的效果(最全说明)

之前在做creator时,需要打包调用安卓震动,看了许多其他博客的方法,虽然意思说明了但是东西不全,因此也花了不少时间。然后自己总结了套最全的傻瓜教程,有兴趣的可以看下。

1.将Cocos Creator项目打包发布形成build文件夹
用Android-studio打开如下目录(图中红色标记):
*/build/jsb-link/frameworks/runtime-src/proj.android-studio/app/src/org/cocos2dx/javascript/AppActivity.java
在这里插入图片描述

在AppActivity.java中导入类

import android.os.Vibrator;
import android.app.Service; 

在这里插入图片描述

2.在class AppActivity( )方法中添加静态成员和静态方法:

代码:

Public static Vibrator myVibrator;

// 获得系统的Vibrator实例
myVibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);

Public static Void vibrator(int time){
            myVibrator.vibrator(time);// 参数为震动时间
};

在这里插入图片描述

3.最后在AndroidManifest.xml文件中添加权限(#不要忽略此步骤)

<uses-permission android:name="android.permission.VIBRATE"/>

在这里插入图片描述

4.在cocos creator脚本中添加震动方法(调用即可)

代码:

// 震动效果
vibrationEffect(){
    if (cc.sys.os === cc.sys.OS_IOS){
        //调用苹果的方法;
    }
    else if (cc.sys.os === cc.sys.OS_ANDROID) {
        jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "vibrate", "(I)V", 3000);
    }
},

5.其他(此部分想更加了解cocos creator原生调用可以看下)
参数剖析:
参数一:“org/cocos2dx/javascript/AppActivity”:java中的包名(.换成/)+class文件名,就当是路径好了
参数二:“vibrate”:方法名(必须public static)
参数三:“ (I)V”:()内的是调用的java方法的参数类型,()外面的是返回值类型
【类型对应表:java类型int —I java类型float----F java类型boolean(布尔)-----Z java类型String-----L java/lang/String;】
参数四:是java方法需要传入的参数(可以多个,与参数三中()内的数量和类型一一对应)
参数签名说明: https://docs.cocos.com/creator/2.0/manual/zh/advanced-topics/java-reflection.html?h=java.
上面的调用
//根据指定的模式进行震动
//第一个参数:该数组中第一个元素是等待多长的时间才启动震动,
//之后将会是开启和关闭震动的持续时间,单位为毫秒
//第二个参数:重复震动时在pattern中的索引,如果设置为-1则表示不重复震动

    long[] patter = {1000, 10000, 1000, 10000};
    vibrator.vibrate(patter, -1);

间隔震动

public static void vibrateLong(){
    long[] patter = {1000, 1000, 500, 1000};
    myVibrator.vibrate(patter,-1);
}

creator调用方法

if (cc.sys.os === cc.sys.OS_ANDROID) {
    jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity","vibrateLong","()V");
}
发布了1 篇原创文章 · 获赞 1 · 访问量 210

猜你喜欢

转载自blog.csdn.net/weixin_43142073/article/details/100160808
今日推荐