2012. 6. 15. 15:59ㆍ프로그래밍/Cocos2dX
Cocos2d-x를 활용해서 게임을 개발하다보면 Java에서 c++함수를 호출하는 경우가 필요합니다.
다음과 같은 경우 활용할 수 있을것 같습니다.
그리고 Java에서 C++의 함수를 호출하는 방법은 생각외로 간단합니다.
- 단말기의 특정 정보를 게임으로 넘겨줄 때
- 결재정보를 넘겨 받고 나서 게임에 반영하고자 할때.
- 그외 다양하게 필요합니다.
Sparta.java에 추가해준다.
public class Sparta extends Cocos2dxActivity
{
protected void onCreate(Bundle savedInstanceState)
{
int sum = nativeAdd(1, 2);
}
private native int nativeAdd(int a, int b);
}
HelloWorldScene.cpp에 추가해준다.
#ifdef __cplusplus
extern "C" {
#endif
jint Java_com_manodio_sparta_Sparta_nativeAdd(JNIEnv *env, jobject thisObj, jint a, jint b)
{
return a + b;
}
#ifdef __cplusplus
}
#endif
확인하는 방법은 다양합니다.
일단은 간단하게 Toast를 이용해서 넘겨받은 값을 확인해 볼수 있습니다.
Toast.makeText(getBaseContext(), "invokeNativeCode() = "+sum , Toast.LENGTH_SHORT).show();
Unity3D나 Cocos2D-X나 사용하는 방법은 비슷한것 같습니다.
그럼 즐거운 코팅 되세요.
감사합니다.
참조 : http://www.cocos2d-x.org/projects/cocos2d-x/wiki/How_to_use_jni
'프로그래밍 > Cocos2dX' 카테고리의 다른 글
Cocos2d-X에서 게임 화면 180도로 회전하게 만들기. (0) | 2012.07.18 |
---|---|
Cocos2d-x에서 java의 signature of a method를 알아내기 (0) | 2012.06.21 |
Flurry를 이용한 어플 사용자 통계분석하기. (0) | 2012.06.14 |
Cocos2d-X사용 안드로이드에서 assets에 접근 못할때... (0) | 2012.06.11 |
cocos2D-X에서 안드로이드 프로젝트 만들기. (13) | 2012.06.07 |