在android中你可以这样做:(可能在iOS中你也可以这样做:))
例如,我想返回一个带有数据的类。所以我创建
/cocos2d-2.0-x-2.0.4/cocos2dx/platform/android/java/src/com/example
(尝试把这个类放在你的项目中我不检查它)
package com.example;
public class SimpleClass {
private int a;
private int b;
public SimpleClass(int a, int b) {
this.a = a;
this.b = b;
}
}
现在,在您的 Cocos2dxActivity 中,您可以添加本机方法,该方法将在您退出或其他操作时执行,这取决于您。
例如
private static native SimpleClass nativeReturner();
您可以在 onStop 或其他方法中执行它,这取决于您。它将返回您的 SimpleClass
接下来在你的项目中,你应该有 jni/main.cpp 一个 JNI 函数,所以你可以简单地添加这个函数:
jobject Java_org_cocos2dx_lib_Cocos2dxActivity_nativeReturner(JNIEnv* env, jobject obj)
{
jint i;
jobject object;
jmethodID constructor;
jclass cls;
cls = env->FindClass("com/example/SimpleClass");
constructor = env->GetMethodID(cls, "<init>", "(II)V");
//Here you initialize your class pass here something
object = env->NewObject(cls, constructor, 5, 12);
return object;
}
这个简单的函数为你创建一个 SimpleClass 并用 5,12 初始化它当然你可以在这里传递你的对象形式你的 cocos 游戏。
例如,在继承形式 CCAplication 的类中,您可以存储要传递的数据。接下来,您可以使用 CCApplication::sharedApplication() 或创建自己的静态方法。
当然在 iOS 和其他平台上你必须要类似的东西。