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"/> 即可。
怎么样,很简单吧
用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"/> 即可。
怎么样,很简单吧
相关文章推荐
- Android中手机震动的设置(Vibrator)的步骤简要说明
- android开发之蜂鸣提示音和震动提示的实现原理与参考代码
- jQuery实现的Div窗口震动特效
- Android登陆界面实现清除输入框内容和震动效果
- android滑动解锁震动效果的开启和取消
- Android实现调用震动的方法
- jQuery实现的Div窗口震动效果实例
- Cocos Studio制作多分辨率UI布局
- Cocos Studio 学习指引
- cocos 2d-x 3.0 正式版环境搭建
- cocos2d-x 3.2 rc0 编译错误解决
- cocos2d-x 3.2 rc0 编译错误解决
- haspremultipliedalpha报错
- cocos 2d test-cpp 学习笔记之AppDelegate.cpp 代码分析
- cocos 2d 简单动画实现
- cocos2dx
- Cocos2dx3.3版本下配置cocostudio(原创)
- 调用手机震动
- 永远的HelloWorld
- cocos2d-3.x 学习杂记