2012-10-23 19 views
0

我再次遇到了一個問題,我只是不知道該如何解決。問題是我該如何將數據傳回Android和iOS從我的cocos2d-x應用程序調用應用程序?將數據返回給Cocos2d-x中的調用應用程序。怎麼可能?

對於Android,我想我會在應用程序以JNI結尾時使用活動結果,但是如何在iOS上實現這一點?

讓我們來看一個不太實際的例子:我在Android和iOS上都有一個現有的應用程序。此應用程序持有不同遊戲的分數,並且通過此應用程序,您可以調用其他遊戲應用程序(也由我撰寫)。當被叫遊戲結束時,主應用程序應該返回分數(如活動結果)。

如果你們可以給我幾個指針,我會非常感激。

回答

0

在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當然你可以在這裏通過你的對象形式你可可比賽。

例如,在繼承CCAplication格式的類中,您可以存儲想要傳遞的數據。接下來你可以使用CCApplication :: sharedApplication()或者創建你自己的靜態方法。

當然,在iOS和其他平臺,你必須模擬的東西。

0

創建排行榜服務器會矯枉過正嗎?被叫遊戲只是將數據發佈到服務器。然後,您的排行榜應用程序從服務器讀取數據。

+0

這顯然是一個解決方案,我只是想在沒有服務器的情況下解決它。不過謝謝你^^ – LugaidVandroiy

相關問題