iOSには、GameCenterというランキングなどを他のPlayerと競うシステムがあります。 Androidで同じようにランキングを表示することができるのが、この「SCORE BOARD」です。
導入も非常に簡単です。今回は、cocos2dxのプロジェクトにこの「SCORE BOARD」を実装する方法を紹介します。
準備
「SCORE BOARD」の管理画面上
「SCORE BOARD」の管理画面上から、「アプリ」と「ランキング(ゲームモード)」の2つを作成します。 2つ作成できれば、プロジェクト内で必要な2つのIDが手に入ります。
- ゲームモードID
- API KEY
SDK
SDKにあるフレームワークをプロジェクトの[libs]内に追加します。 GameFeatSDK.jarに関しては、別途最新のものを入れたほうがいいでしょう。(注意:ver3.0.0にすると、ランキング内のウォール広告が開かなくなります)
[Javaビルド・パス]で、プロジェクト内で使えるようにする。
[AndroidManifest.xml]で、ネットが利用できる設定をする。 [c]
<uses-permission android:name="android.permission.INTERNET" />
[/c]
これで完了です。
実装する
[AndroidManifest.xml]と[Cocos2dActivity.java]に記述が必要です。 ただ、マニュアル通りなので、迷うことはないでしょう。
[AndroidManifest.xml]
「SCORE BOARD」と「SCORE BOARD内にあるGameFeatのウォール広告」の2つを設定しています。 もし、「GameFeatのウォール広告」を利用する場合は、別途記述がいらないとこのまま利用ができます。
2つIDを入れる所がありますので、ここにあなたのIDを入れて下さい。
[c]
<meta-data android:name="gamefeat_ranking_api_key" android:value="********************" />
<meta-data android:name="gamefeat_site_id" android:value="****" />
[/c]
[Cocos2dActivity.java]
ここで、「SCORE BOARD」の立ち上げと、「SCORE BOARD」に得点を送る2つのメソッドを実装します。 これをJNIを使って操作します。 これもマニュアル通りです。
SCORE BOARD」の立ち上げ [c]
private static Cocos2dxActivity me = null;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
me = this;
}
//***には、ゲームモードIDを入れて下さい。
public static void openRanking(){
GFRankingController.show(me, "***.*******.*****");
}
[/c]
「SCORE BOARD」に得点を送る [c]
public static void postHighScore(String score){
//***には、ゲームモードIDを入れて下さい。
String[] gameIds = {"***.*******.****"};
String[] scores = {score};
GFRankingController appController = GFRankingController.getIncetance(me);
appController.sendScore(gameIds, scores);
}
[/c]
これで完了です。 openRanking()を呼び出せば、ランキングの画面が開きます。
次の新作にこのランキングを導入しています。よろしくお願いいたします。