cocos2dxにAdMobを実装(android)
1.AdMobのアカウント登録
http://www.google.co.jp/ads/admob/にアクセスしてAdMob に申し込む
から登録できます。登録完了したら、収益化のページに移動し、新しいアプリの収益化を追加します。
ステップに沿ってフォームに入力したら、ca-app-pub-xxxxxxxxxxxxxxxxx/xxxxxxx
(xは数字)のような広告ユニットIDが取得できます。
2.cocos2d-xプロジェクトを新規作成
cocos new javaAd -l cpp -p com.befool -d <パース>
javaAd
はプロジェクト名です。他の名前にしてもいいですが、この記事ではjavaAd
を使います。
で新規プロジェクトを作成して
AppDelegate.cpp
の
auto glview = director->getOpenGLView();
if(!glview) {
glview = GLView::create("My Game");
director->setOpenGLView(glview);
}
直後に、下記のコードを追加
glview->setDesignResolutionSize(800.0f, 480.0f, ResolutionPolicy::FIXED_WIDTH);
HelloWorldScene.cpp
のinit()
メソードを下記のように修正
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto label = Label::createWithSystemFont("Hello", "HiraKaku-W6", 36.0f);
label->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));
this->addChild(label);
// Hello を画面の真ん中に表示させます。
return true;
}
xcodeでコンパイルすると、こうなります:
3.AndroidにDeployしてみる
Android SDKに入ってるEclipseを開いて、File > Import …で先ほど新規したcocos2dxプロジェクトフォルダ中のcocos2d/cocos/platform/android/java
をインポートする。(これがcocos2dxのlibになります、cocos2dxのプロジェクトはほぼこれを基盤にして動いてるので、これがないとコンパイルされません。)
同様にproj.android
もインポートします。(これが先ほど作ったjavaAd
プロジェクトです)。javaAd
を右クリックしてproperties
を選択して、Android
タブに移動してcocos2dxライブラリが追加されたかどうかを確認します。追加されてないもしくは赤い×が表示されていれば手動で追加しなければなりません。
上記の流れでやってきたら、javaAd
を右クリックして、Run As … > Android Applicationでコンパイルできます。結果はこうなります:
4.AdMobを実装
1. Google Play Services libsを取得
AndroidのSDKからGoogle Play Service
2. Google Play Services libsをEclipseにインポートする
File > Import … で Android SDK中のsdk/extras/google/google_play_services/libproject/google-play-services_lib
フォルダをインポートします。javaAd
プロジェクトを右クリックして、Propertiesを選択、Androidタブへ移動してgoogle-play-services_libを追加します。
3. AdViewを追加
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
今回は簡単な実装をやるので、バージョンの低い(3.0以下)Androidは対応していません。(これについて次回検討します)