2014年7月20日日曜日

Cocos2dx v3.0 から v3.2 正式版への移行メモ

Cocos2d-x v3.0 から v3.2 へ移行した時のメモを書き残します。
なお、前の投稿内容に書いた「移行メモ」を事前に実施しておいてください。
http://laboyukai.blogspot.jp/2014/07/cocos2dx-v32rc0-v32.html

iOSでの設定

前投稿内容の「移行メモ」からさらに追加で以下の事を行う必要があります。
プロジェクトの[TARGETS]-[Build Settings]にある[Header Search Paths]に設定されているplatformパスを以下のように修正。
  • $(SRCROOT)/../cocos2d/cocos/platform/ios
  • $(SRCROOT)/../cocos2d/cocos/platform/ios/Simulation

おそらくAdMobを追加(plugin利用)していると発生するエラーの解決法
  • MediaPlayer.framework を追加
  • GameController.framework を追加
※GameControllerはpluginの追加方法が悪いからframeworkを追加せざるを得ない状態になっているのかもしれません。

Androidでの設定

主な変更内容は以下になります。
  • AndroidManifest.xml の meta-data 要素をactivityからapplication要素の下へ移動
  • build_native.py 差替え
  • jni/Application.mk 差分内容を変更
  • jni/Android.mk は差分内容を変更。$(call import-module,2d) を削除する事をお忘れなく

v3.0からv3.2へ移行して発生した問題

addTouchEventListenerがdeprecatedになっていたので以下のように修正。
// before
button->addTouchEventListener(this, toucheventselector(PrepareScene::backEvent));
void PrepareScene::touchGoStageEvent(Node* pSender, TouchEventType type) {
    if (type == TOUCH_EVENT_ENDED) {}
}
// after1
button->addTouchEventListener(CC_CALLBACK_2(MenuScene::backEvent, this));
void PrepareScene::touchBackEvent(Ref* pSender, ui::Widget::TouchEventType type) {
    if (type == ui::Widget::TouchEventType::ENDED) {}
}
// after2
button->addTouchEventListener([](Ref* pSender, ui::Widget::TouchEventType type) {
    if (type == ui::Widget::TouchEventType::ENDED) {}
}

0 件のコメント:

コメントを投稿