Cocos2d-x활용해서 Java에서 C++ 함수 호출하기

2012. 6. 15. 15:59프로그래밍/Cocos2dX

728x90
반응형

Cocos2d-x를 활용해서 게임을 개발하다보면 Java에서 c++함수를 호출하는 경우가 필요합니다.

다음과 같은 경우 활용할 수 있을것 같습니다.

그리고 Java에서 C++의 함수를 호출하는 방법은 생각외로 간단합니다.


  1. 단말기의 특정 정보를 게임으로 넘겨줄 때
  2. 결재정보를 넘겨 받고 나서 게임에 반영하고자 할때.
  3. 그외 다양하게 필요합니다.



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


728x90
반응형