您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx 3.7添加手机震动

2015-12-22 22:31 507 查看
这个震动需要调用adnroid系统的方法,所以需要C++调用java,JNI这里就不多做介绍了,需要的可以自己去查找下相关资料

用eclipse打开libcocos2dx根目录下的\src\org.cocos2dx.lib\Cocos2dxHelper.java 文件  在Cocos2dxHelper类中添加静态方法 

        public static void vibrate(int vibrateTime) {

            Vibrator vib = (Vibrator) sActivity.getSystemService(Service.VIBRATOR_SERVICE);

        vib.vibrate(vibrateTime);

        }

        

        public static void cancelVibrate() {

        Vibrator vib = (Vibrator) sActivity.getSystemService(Service.VIBRATOR_SERVICE);

        vib.cancel();

        } 

         

        引入相应的包,即可保存文件。 

自此Java文件的修改已经完成,接下来就可以在游戏代码中通过特定函数来调用震动方法了。 

        为了方便调用可以写一个类 

        USING_NS_CC;

        #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

        #include <jni.h>

        #include <android/log.h>

        #include "platform/android/jni/JniHelper.h"

        #define  CLASS_NAME "org/cocos2dx/lib/Cocos2dxHelper"

        #endif

        

        class Vibrator

        {

        public:

            static void vibrate(int time);

            static void cancelVibrate();

        };

        void Vibrator::vibrate(int time)

        {

        #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

            JniMethodInfo t;  

            if (JniHelper::getStaticMethodInfo(t, CLASS_NAME, "vibrate", "(I)V"))

            {

                t.env->CallStaticVoidMethod(t.classID, t.methodID, time);

                t.env->DeleteLocalRef(t.classID);

            }

        #endif

        }

        void Vibrator::cancelVibrate()

        {

        #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

            JniMethodInfo t;

            if (JniHelper::getStaticMethodInfo(t, CLASS_NAME, "cancelVibrate", "()V"))

            {

                t.env->CallStaticVoidMethod(t.classID, t.methodID);

                t.env->DeleteLocalRef(t.classID);

            }

        #endif

        }

        之后,就可以通过

        Vibrator::vibrate(5000);来实现震动了。

         

        最后,千万别忘了添加震动权限,在项目目录中\proj.android\AndroidManifest.xml 添加<uses-permission android:name="android.permission.VIBRATE"/> 即可。 

        怎么样,很简单吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  震动 cocos