如何在Android和iOS设备上为cocos2d-x 3.2添加振动? [英] How to add vibration to cocos2d-x 3.2 on Android and iOS devices?
问题描述
我想使用cocos2d-x 3.2使用一种滑块功能来振动设备。
I want to vibrate my device in one of my slider functionality, using cocos2d-x 3.2.
我在官方论坛,但我
有人可以帮我吗?
推荐答案
搜索后很多,最后我在Android的Cocos2d-x 3.2中完成了振动功能。
After Searching a lot , Finally i am done with my Vibrate Function in Cocos2d-x 3.2 for android.
有一个振动器类。
Vibrator.h
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <jni.h>
#include <android/log.h>
#include "platform/android/jni/JniHelper.h"
#endif
#define CLASS_NAME "org/cocos2dx/lib/Cocos2dxHelper"
class Vibrator
{
public:
static void Vibrate(int time);
static void CancelVibrate();
};
#endif
Vibrator.cpp
#include "Vibrator.h"
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
}
=>在AndroidManifest中。 xml:在src / org / cocos2dx / lib / Cocos2dxHelper.java文件中添加以下权限。
=> in AndroidManifest.xml : add below permission .
=>
首次导入=>导入android.os.Vibrator;
first import => import android.os.Vibrator;
然后,添加这两种方法
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 ();
}
现在,每当我们要使用振动功能时,我们都必须包括该振动器班级只需按以下方式调用即可。
Now, Whenever we want to use Vibrate Function we just have to include this Vibrator Class & Simply Calling it as below .
Vibrator::Vibrate(50);
要禁用它,
Vibrator::CancelVibrate();
in在Tab中不起作用,因为其中没有振动器。
in won't work in Tab as it does not having Vibrator in it .
这篇关于如何在Android和iOS设备上为cocos2d-x 3.2添加振动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!