Cocos2d-x
Quick Start
ๆๆฐใใผใธใงใณใใฆใณใญใผใ
ๆขๅญใใญใธใงใฏใใซNavergame SDKใ้ฉ็จใใ
ๆฌใฌใคใใฏใCocos2d-x 3.17.2ใใผใธใงใณใๅบๆบใซไฝๆใใใฆใใพใใ
1. ใใญใฐใคใณใฎๆงๆ
ใตใณใใซใใญใธใงใฏใๅ ใฎPluginsใใฉใซใใซใฏSDKใซๅฟ ่ฆใชใใกใคใซใๅ ฅใฃใฆใใพใใ

android : android buildใซๅฟ ่ฆใชใใกใคใซใๅ ฅใฃใฆใใพใใ
ios : ios buildใซๅฟ ่ฆใชใใกใคใซใๅ ฅใฃใฆใใพใใ
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()ใกใฝใใใๅผใณๅบใใฆใใ ใใใ
ClientId: NAVER IDใงใญใฐใคใณ้็บ่ ใปใณใฟใผใซใขใใชใฑใผใทใงใณใ็ป้ฒๆใซๅใๅใฃใใฏใฉใคใขใณใID
ClientSecret: NAVER IDใงใญใฐใคใณ้็บ่ ใปใณใฟใผใซใขใใชใฑใผใทใงใณใ็ป้ฒๆใซๅใๅใฃใใฏใฉใคใขใณใใทใผใฏใฌใใ
LoungeId: ๅ ฌๅผใฉใฆใณใธใ็ณ่ซๆใซๅใๅใฃใLoungeId
nng::NaverGameSDK::init("UKvNABLDsyEJusJGsXL2", "rK4suc_Qd0", "naver_game_4developer");
3-2. SDKใคใใณใใชในใใผใฎ็ป้ฒ
SDKใ้ไฟกใใๆงใ ใชใคใใณใใๅใๅใใใใซใฏใชในใใผใ็ป้ฒใใชใใใฐใชใใพใใใ
//๋ฆฌ์ค๋๋ NaverGameSDK.h ์ ์ ์ธ๋์ด์์ต๋๋ค.
nng::NaverGameSDK::setSdkListener(this);
3-3. SDKๅฏพๅฟFuntionใ็ขบ่ชใใ
ใใผใ ใใใผใๅผใณๅบใ
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)ใงใใใใใๆดป็จใใใจใใณใผใๅ ใงๅฝๅฅใซๅๅฒๅฆ็ใใใใจใใงใใพใใไธปใชๅฝใณใผใใฏไปฅไธใฎใจใใใงใใใใฎไปใฎๅฝใณใผใใฏใชใณใฏใใๅ่ใซใใฆใใ ใใใ
ๅฝใณใผใ
ๅฝ
CN
ไธญๅฝ
JP
ๆฅๆฌ
KR
้ๅฝ
TH
ใฟใค
US
็ฑณๅฝ
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ใใฉใซใใฎๅ ๅฎนใงใใ

com...ใใฉใซใๅ ใฎ็ซฏใซใฏใandroidใงcocosใใญใธใงใฏใใจใใชใใธใฎๅฝนๅฒใใใNNGSdk.javaใใกใคใซใๅ ฅใฃใฆใใพใใ
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/CmakeList.txtใซSDKใซๅฟ ่ฆใชใใกใคใซใจใใฉใซใใในใๆญฃใใ่ฟฝๅ ใใใใ็ขบ่ชใใฆใใ ใใใโ
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ใฒใผใ 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ๅคใฏๅฝ่ฉฒTARGETใฎGeneralใฟใใง็ขบ่ชใงใใพใใ
URL SchemesๅคใซใฏNAVER IDใงใญใฐใคใณ้็บ่ ใปใณใฟใผใซใขใใชใฑใผใทใงใณใ็ป้ฒๆใซๅ ฅๅใใURL Schemeๅคใๅ ฅๅใใฆใใ ใใใ


Last updated
Was this helpful?