Cocos2dx 개발환경에서 안드로이드 기기에서 진동을 호출 할려면?
생각보다 간단해요^^
간단한 설명과 함께 소스코드도 같이 올려 드릴께요
먼저 Visual Studio 개발환경에서 코드에요 (C++)
서비스 클래스를 만들어서 아무곳에서나 진동함수를 호출 할 수 있게 만들어 줍니다.
[DeviceServices.h]
class DeviceServices
{
public:
DeviceServices();
~DeviceServices();
// 진동 호출 함수
void callVibrateEffect();
};
[DeviceServices.cpp]
#include "DeviceServices.h"
DeviceServices::DeviceServices(){}
DeviceServices::~DeviceServices(){}
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "platform/android/jni/JniHelper.h"
#include <jni.h>
const char* AppActivityClassName = "com/eyen/cpp/AppActivity"; // <-안드로이드에 진동구현 코드가 있는 경로에요
void DeviceServices::callVibrateEffect()
{
cocos2d::JniMethodInfo t;
if (cocos2d::JniHelper::getStaticMethodInfo(t, AppActivityClassName, "jniVibrateEffect", "()V"))
{
t.env->CallStaticVoidMethod(t.classID, t.methodID);
t.env->DeleteLocalRef(t.classID);
}
}
#else
const char* AppActivityClassName = "com/eyen/cpp/AppActivity";
여기서 붉은색으로 마크된 경로는 본인의 진동을 구현한 java 파일경로에 맞게 설정해 주면 되어요.
서비스 클래스를 만들었으면
C++ 호출예제는 초간단!!
#include "DeviceServices.h"
void MainScene::hitEnermyObj()
{
// call vibrate
DeviceServices::vibrateEffect();
}
이렇게 하면 끝!
다음은 안드로이드에 진동을 구현해 줘야되겠죠?
제가 진동을 구현한 java 파일경로는 "com/eyen/cpp/AppActivity" 입니다. 그래서 저 위에 C++에 경로를 이렇게 세팅해 줬어
package com.eyen.cpp;
import android.os.Vibrator;
import org.cocos2dx.lib.Cocos2dxActivity;
public class AppActivity extends Cocos2dxActivity {
// main
private static AppActivity _appActiviy;
// vibrate
Vibrator mVibrator = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
_appActiviy = this;
mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}
public void vibrateEffect() {
mVibrator.vibrate(80); // 요기 마킹된 수치를 조정하면 진동시간을 늘리고 줄일 수 있어요 (클수록 오래감)
}
public static void jniVibrateEffect() {
_appActiviy.runOnUiThread(new Runnable() {
@Override
public void run() {
_appActiviy.vibrateEffect();
}
});
}
}
이상 코코스 개발환경에서 안드로이드 기기에 진동을 구현하는 방법이었습니다. ^^
이렇게 진동을 구현해서 만든 게임이에요
다운받기 "대빠빨리쏴"
https://play.google.com/store/apps/details?id=com.eyen.SimsulPang
최근댓글