如何在Android和iOS设备上为cocos2d-x 3.2添加振动? [英] How to add vibration to cocos2d-x 3.2 on Android and iOS devices?

查看:157
本文介绍了如何在Android和iOS设备上为cocos2d-x 3.2添加振动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆