Cocos2d-x

Quick Start

最新バージョンダウンロード

既存プロジェクトにNavergame SDKを適用する

本ガイドは、Cocos2d-x 3.17.2バージョンを基準に作成されています。

1. プログインの構成

  • サンプルプロジェクト内のPluginsフォルダにはSDKに必要なファイルが入っています。

  1. android : android buildに必要なファイルが入っています。

  2. ios : ios buildに必要なファイルが入っています。

  3. navergamesdk : cocos2d-xプロジェクトとandroid、iosなど各プラットフォームに連動する必要のあるファイルが入っています。

2. プログインのインストール

  • 貴社のCocos2d-xプロジェクトとSDKを連動させるためには、Plugins内のnavergamesdkフォルダを以下のように貴社のプロジェクト内のClassesフォルダの中にコピーしてください。

  • 貴社のプロジェクトでandroid或いはiosプラットフォームを一つだけリリースする予定の場合は、platform画面下のandroid或いはiosフォルダのうち該当するフォルダのみを残して削除すると良いでしょう。

2-1. NaverGameSDK.h

  • 当該ファイル内にはsdk連動に必要なコードが作成されています。

3. プロフインの適用

貴社のプロジェクト内でsdkを使用したい場所にヘッダファイルをincludeさせてください。

(サンプルプロジェクトではHelloWorldScene.hに適用されています。)

#include "NaverGameSDK.h"
  • NaverGameSDK.hが見つからないと表示された場合は、rootProject/CmakeLists.txtにヘッダファイルを下の画像のように追加してください。

3-1. SDKの初期化

SDKを初期化するときは、以下のように初期化オプションを設定してinit()メソッドを呼び出してください。

nng::NaverGameSDK::init("UKvNABLDsyEJusJGsXL2", "rK4suc_Qd0", "naver_game_4developer");

3-2. SDKイベントリスナーの登録

SDKが送信する様々なイベントを受け取るためにはリスナーを登録しなければなりません。

//리스너는 NaverGameSDK.h 에 선언되어있습니다.
nng::NaverGameSDK::setSdkListener(this);

3-3. SDK対応Funtionを確認する

  1. ホームバナーを呼び出す

nng::NaverGameSDK::startHomeBanner();

2. 点検バナーを呼び出す

nng::NaverGameSDK::startSorryBanner();

3. 特定の掲示板を呼び出す

nng::NaverGameSDK::startBoard(boardId);

4. 特定の投稿を呼び出す

登録された投稿の番号ですぐに実行するメソッドです。予約機能によって登録された予約投稿の場合は、予約投稿の番号をFeedIDに入力してIsTempFeedIdをTrueと入力してください。

nng::NaverGameSDK::startFeed(feedId, isTempFeedId);

5. sdkを終了させる

nng::NaverGameSDK::stopSdk

6. 国コードを呼び出す

モバイル機器のcountryCodeを取得します。必ずinit()メソッドが呼び出した後に呼び出した場合のみ正常値を得ることができます。

nng::NaverGameSDK::getCountryCode();

countryCodeは2文字のアルファベットで構成された国コード(ISO 3166-1 alpha-2)です。これを活用すると、コード内で国別に分岐処理することができます。主な国コードは以下のとおりです。その他の国コードはリンクをご参考にしてください。

AndroidプロジェクトにNavergame SDKを適用させる

以下はサンプルプロジェクトのAndroidビルド環境です。ご参考にしてください。

  • Cocos2d-x 3.17.2

  • Android Studio 4.2

  • Gradle 4.9 (proj.android/gradle/wrapper/gradle-wrapper.properties)

  • Ndk 16.1.4479499

  • Cmake 3.10.2.4988404 (with Ninja 1.10.2)

1. Cocos2d-xとAndroidを連結するブリッジファイル(コード)を追加する

サンプルプロジェクトのPluginsフォルダです。

Pluginsフォルダ内のandroidフォルダの内容です。

  1. com...フォルダ内の端には、androidでcocosプロジェクトとブリッジの役割をするNNGSdk.javaファイルが入っています。

  2. navergame-sdk-gradle-x.x.x.aarはNavergame sdkライブラリです。

サンプルプロジェクトディレクトリの構造です。

1-1. navergame-sdk-gradle-x.x.x.aar

Naver Game SDKライブラリです。

  • rootProject/proj.android/app/libsフォルダに貼り付けてください。libsフォルダがない場合は作成してください。

1-2. NNGSdk.java

AndroidでCocos2d-xプロジェクトとSDKを連結させるブリッジコードが作成されたファイルです。

  • rootProject/proj.android/app/srcフォルダに貼りつけてださい。com..ではじまるフォルダ全体を貼り付けてください。

1-3. NaverGameSDK.cpp

Cocos2d-xでAndroidプロジェクトと連結させるブリッジコードが作成されたファイルです。

  • rootProject/Classes/navergamesdk/platform/android/NaverGameSDK.cppファイルがあるか確認して、ない場合はPluginsフォルダで探して貼り付けてください。

  • cocos2d-xバージョンによってJniHelperが別の名前で作成されている場合があるので、バージョンが異なる場合は確認してみてください。

#include "NaverGameSDK.h"
#include "platform/android/jni/JniHelper.h"

using namespace cocos2d;

namespace nng {
    static bool getStaticMethod(JniMethodInfo &methodinfo, const char *methodName, const char *paramCode) {
        static const char* kCafeSdkClass = "com/navercorp/nng/cocos2dx/sample/NNGSdk";
        return JniHelper::getStaticMethodInfo(methodinfo, kCafeSdkClass, methodName, paramCode);
    }

    static NaverGameSDKListener* sdkListener = nullptr;

    void NaverGameSDK::setSdkListener(NaverGameSDKListener* listener) {
        sdkListener = listener;
    }

    void NaverGameSDK::init(std::string clientId, std::string clientSecret, std::string loungeId) {
        JniMethodInfo t;
        if (getStaticMethod(t, "init","(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V")) {
            jstring _clientId = t.env->NewStringUTF(clientId.c_str());
            jstring _clientSecret = t.env->NewStringUTF(clientSecret.c_str());
            jstring _loungeId = t.env->NewStringUTF(loungeId.c_str());

            t.env->CallStaticVoidMethod(t.classID, t.methodID, _clientId, _clientSecret, _loungeId);

            t.env->DeleteLocalRef(_clientId);
            t.env->DeleteLocalRef(_clientSecret);
            t.env->DeleteLocalRef(_loungeId);
            t.env->DeleteLocalRef(t.classID);
        }
    }

    .
    .
    .

    extern "C" {
        JNIEXPORT void JNICALL
        Java_com_navercorp_nng_cocos2dx_sample_NNGSdk_onSdkStarted(JNIEnv* env, jclass thiz) {
            if (sdkListener == nullptr) return;
            sdkListener->onSdkStarted();
        }

        .
        .
        .
    }
}   /* namespace nng */
  • kCafeSdkClass = "com/navercorp/nng/cocos2dx/sample/NNGSdk";

    • NNGSdk.javaファイルのロケーションパスです。NNGSdk.javaのロケーションパスを変更した場合は、当該ロケーションに合わせて修正してください。

  • Java_com_navercorp_nng_cocos2dx_sample_NNGSdk_

    • NNGSDK.javaファイルのロケーションパスです。NNGSdk.javaのロケーションパスを変更した場合は、当該ロケーションに合わせて修正してください。

2. Androidでビルドするための設定

1-1. AndroidManifest.xml

  • rootProject/proj.android/app/AndroidManifest.xmlファイル内にSDKで必要な権限を追加してください。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

1-2. build.gradle

  • rootProject/proj.android/app/build.gradleファイル内にSDKとSDKで必要なライブラリを追加してください。

dependencies {
    implementation project(':libcocos2dx')
    /**
     * Navergame sdk와 필요한 libraries
     */
    implementation files('libs/navergame-sdk-gradle-1.1.0.aar')
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.72"            // Kotlin
    implementation "androidx.viewpager2:viewpager2:1.0.0"
    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
    implementation "com.github.bumptech.glide:glide:3.7.0"                // Glide
    implementation "com.squareup.retrofit2:retrofit:2.6.4"                // Retrofit, Gson
    implementation "com.squareup.retrofit2:converter-gson:2.7.2"          // Retrofit, Gson
}

1-3. ndkとcmakeのインストール

  • Android Studioの利用方法

    • Android Studio -> Preferences -> 検索でsdkを検索後、sdk toolsタブでndkとcmakeをダウンロードしてください。(Show Package Detailsをチェックしてください。)

1-4. ndk、cmakeの適用

  • rootProject/proj.android/local.propertiesファイルにndk、cmakeインストールファイルパスを入力してください。

3. Androidでビルドする

Cocos2d-xプロジェクトをAndroidでビルドする方法は2つあります。

  • cmake

  • ndk

正確な名称はcocos2d-xのバージョンによって異なることがあるので確認してください。3.17.2バージョン基準では、build.gradleファイル内で確認できます。

3-0. ビルドタイプの適用方法

rootProject/proj.android/gradle.propertiesファイル内のPROP_BUILD_TYPEプロパティで定めることができます。

  • cmakeでビルドする場合は、PROP_BUILD_TYPE=cmakeに設定してください。

3-1. CMAKEでビルドする

  • rootProject/proj.android/gradle.properties内のPROP_BUILD_TYPE=cmakeを確認してください。

  • rootProject/proj.andorid/local.propertiesにcmakeとndkのインストールファイルパスが正しく入力されたか確認してください。

  • cmakeでビルドするためにはNinjaが必要です。ninjaのインストールを確認してください。

  • ビルドボタンをクリック!

3-2. NDKでビルドする

  • rootProject/proj.android/gradle.properties内のPROP_BUILD_TYPE=ndk-buildを確認してください。

  • rootProject/proj.android/app/jni/Android.mkにSDKに必要なファイルとフォルダパスを追加してください。

  • rootProject/proj.andorid/local.propertiesにndkのインストールファイルパスが正しく入力されたか確認してください。

  • ビルドボタンをクリック!

iOSプロジェクトにNavergame SDKを適用する

NAVERゲームのiOS SDKは、iOS 12.0以降のバージョンに対応しています。

NAVERゲームSDKを使用する場合は、XCodeで以下のように開発環境を設定してください。

  • TARGETS項目のうち実行されるアプリを選択してください。

  • Build Settingタブを選択してLinking項目でOther Linker Flagsを探してください。

    • BasicまたはCustomizedモードの場合は、Other Linker Flagが見えない場合があります。この場合は、Allモードを選択してください。

    • 画面右上にある検索ウィンドウにOther Linker Flagを入力すると容易に見つけることができます。

  • Other Linker Flags-ObjCオプションと-lc++オプションを追加してください。

  • Info.plistに以下のユーザー権限獲得オプションを追加してください。

    • Privacy - Camera Usage Description

    • Privacy - Photo Library Usage Description

  • TARGETS項目のうち実行されるアプリを選択してInfoタブのURL Types項目にIdentifier値とURL Schemes値を入力してください。

  • Identifier値は当該TARGETGeneralタブで確認できます。

  • URL Schemes値にはNAVER IDでログイン開発者センターにアプリケーションを登録時に入力したURL Scheme値を入力してください。

Last updated