[Cocos2d-x]Cocos2d-x Ver3.0 移行のススメ[iOS][Android]

2014.05.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Cocos2d-x 3.0 FINALがリリース

こんにちは!あらかわです。

前回Cocos2d-xについて書いた記事 がgunosyさんの夕刊に載せて頂けました。

世間のCocos2d-xに対する注目度の高さに私自身が驚きました。

ちょうど1週間前にVer3.0 FINAL(正式版)がリリースされたこともあり、今月はCocos2d-x Ver3.0に関する記事を何本か書いていこうかと思います。

Ver3.0(FINAL)移行のススメ

Cocos2d-x3.0rc2までは、仕様が頻繁に変更されていた事もあり、Newsに目を通していた程度だったのですが、やっと今回移行することに決めました。

Ver2.2.3から移行して数日使ってみた印象としては以下のような事があります。

ちょっと不便だった点

  • C++11になり、元々Objective-C(cocos2d for iphone)風に書けていたクラスやメソッドが使えなくなっている。
  • クラスプリフィックス(接頭語)の「CC」がなくなった事により、Ver2.2.3のコードの大半がdeprecate(警告)になる。
  • 参考文献が非常に少なかった。英語文献とニュアンスしか理解できない中国語文献を頼りにした。OSSでフォーラムが活発でなければ難しかったと思う。
  • 同じVer3.0でもalphaやbeta、rcなどどれも微妙に仕様が変わっていたので、所々サンプルコードが使えなくてハマった。

変えて良かったと思っている点

  • バージョンが正式版になった。
  • C++11のラムダ式が使えるようになった。メニュー押下時のコールバックメソッドなどはmenu_selectorをわざわざ書かなくてすむようになった。
  • C++11 thread APIが使えるようになった。auto型(型推論)、cocos2d::Value(汎用Object型)、cocos2d::Vector(元CCArray)やcocos2d::Map(元CCDictionary)などが採用され、C++をやっている人にはとても見やすくなった。
  • Cocos2d-x 2.x系に比べて導入がとても簡単になった。setup.pyがあるので面倒な導入操作が大幅に減った。
  • 2.2系よりあらゆるパフォーマンスが向上している。
  • イベントリスナー(EventDispatcher、TouchEventやKeyboardEvent)がわかりやすくなった。
  • CocoStudio for Mac(無償の開発ツール)がリリースノート(訂正しました)NEWSにnear featureと書かれており、これからも発展が期待できる。CocoStudioはVer3.0向けに作られている。
  • 既存のメソッドは文法がObjective-Cのプロパティに近かったが、getterとsetterを使った明示的なアクセサに変わった。Director::getInstance()->getVisibleSize();など。

本家もかなり力を入れて開発しているのか、ドキュメントもしっかりしています。

そこで、これは見ておいて損はしない!(開発者以外も)というものを列挙します。

  1. 日本語ドキュメント(2014/05/02現在、まだCocoStudioしかない)
  2. 推奨ツール(ページ下部)
  3. Ver3.0リファレンス
  4. フォーラム(3.0FINALで迷ったらまずはここでキーワード検索)
  5. パフォーマンステスト rcまでですがgoogle docs形式で非常に細かく計測されています。
  6. cocos2d-x.jp(日本のコミュニティ)

他にもオススメの記事がございましたらコメント欄まで御記載下さい。

以上でCocos2d-xはVer3.0になってからどうなったかが大体伝わったかと思いますので、今回は導入まで紹介していきます。

おまけ:Cocos2d-x 3.0導入(プロジェクトを作るまで)

前提条件

  • Mac OS X バージョン 10.9.2
  • Xcodeが既にインストール済み
  • Android SDKがインストール済み
  • Android NDKがインストール済み

私もそれぞれ最新版のものをダウンロードして解凍(ダブルクリックでできます。)しました。

解凍したディレクトリはUserのホームディレクトリなどわかりやすいところに置くと管理が簡単です。

公式サイトのダウンロードページのDownload v3.0を選択し、解凍します。

cocos3.0_01

ダウンロードしてきたzipファイルを解凍して任意の場所に置きます。私はUserのホームディレクトリ直下にしました。

cocos3.0_02

cocos2d-x-3.0の中にある、setup.pyが優れものです。

cocos3.0_03

Pythonのコマンドをターミナルから叩くことで実行できます。

ターミナルの起動方法がわからない方はMacの画面右上隅の虫眼鏡マークをクリックし、「ターミナル」と打てば出て来ますのでクリックして下さい。

cocos3.0_04

ターミナルを起動したら以下のコマンドを打ちましょう。コマンドがわからない方は以下をコピペして下さい。

cd cocos2d-x-3.0
python setup.py

ここまで叩くとAndroid NDKの場所、Android SDKの場所、ANTの場所の順にそれぞれ尋ねられます。

既に古いバージョンのCocos2d-xで設定していた方は必要ありません。それぞれ設定してあるものはEnterでスキップして下さい。

私の場合Cocos2d-x-3.0と同じ階層に置いてあるのでそれぞれのパスは以下の通りです。

以下の3点はそれぞれの環境で違うので注意して下さい。

  • ユーザー名:mymac(ターミナル起動時 $ マークの前についているのがユーザー名)
  • NDKのバージョン:r9d
  • SDKのバージョン:adt-bundle-mac-x86_64-20140321
/Users/mymac/android-ndk-r9d
/Users/mymac/adt-bundle-mac-x86_64-20140321/sdk

ANT_ROOTはEnterでスキップしてもらって構いません。

完了すると以下のように表示されます。

Please execute command: "source /Users/mymac/.bash_profile" to make added system variables take effect

source /Users/ユーザー名/.bash_profileの部分をコピーして、再度叩けば完了です。

source /Users/mymac/.bash_profile

cocos3.0_05

(一回NDKが2つあってエラーが出たので、SDKは既に設定されています。失敗した時は再度python setup.pyを叩けば打ち直せます。)

初めてやるとつまづきやすい環境変数の設定が、pythonコマンド1つと3つの質問に回答するだけで完了しました。便利ですね。

ここまで全て上手くいけていれば、以下のコマンドを叩けばプロジェクトが作成できます。

cocos new MySampleProject(好きなプロジェクト名) -p jp.classmethod.MySampleProject(好きなパッケージ名) -l cpp(cpp、lua、 js) -d ~/Desktop(プロジェクトを作成する場所)

cocos3.0_06

成功するとデスクトップにプロジェクトが出来ています。

これまででCocos2d-x Ver3.0の導入は完了です。

まとめ

普段から開発している方でしたら、おそらくダウンロードの時間以外はものの数分でセットアップが完了すると思います。

Android SDK・NDKが最初からあればCocos2d-xのダウンロードだけでほとんど終わります。

導入が簡単になったことで、これから新規デベロッパーが増えることでしょう。

さらにCocoStudio for Macが出たらエンジニア以外の方でも開発に参加がしやすくなります。

次回からは既に開発したことがある方向けに、スムーズに開発するためのテクニックを紹介していこうと思います。