Cocos2d-x
8時間さわってみた

    @tmokita




       1
               1
自己紹介
• 沖田 知彦
 Tomohiko Okita
 (株)フォーユー
 プログラマ

• 最近作ったもの
 パズドラ攻略アプリとか

                  2
                      2
はじめに



 3
       3
なんで8時間?



   4
          4
• 1人日でどこまでできるか



         5
                 5
Cocos2d-xとは



     6
              6
• 主に2Dゲームに特化した
 iOS/Android用のライブラリ

• 音や物理演算などのライブラリも含む
• C++


           7
                      7
僕のスペック

• 普段はxcodeでのiPhone開発
• AndroidやEclipseはほとんど素人
• EclipseやAndroidSDKは入れてた
• Cocos2d(notX)は少しは使ってた

            8
                            8
目標



9
     9
• Cocos2d-xを導入できるようになる
• AndroidとiPhoneでソースを共有でき
 るようにする

• ParticleDesignerとかも使いたいよね
• CocosBuilderとかも使いたいよね

             10
                              10
はじまるよー



  11
         11
1時間目




 12
       12
1時間目
•   久しぶりなのでまずはNexus7の実機でCocos2d-
    xじゃない普通のAndroidアプリが動かせるか確認

•   4.0以降のSDKが入ってなかったのでインストール

•   Nexus7のDevelopモードを探す

•   Cocos2d-x最新版をDL

•   NDKが必要らしいのでインストール



                 13
                                   13
2時間目




 14
       14
2時間目
• Cocos2d-xをインストール
• Eclipseに取り込んでやってみるけどなん
 かうまくいかない

• @overrideをコメントアウト
 (すごい怪しい,他の環境では不要だった)

• 動いたー
            15
                           15
お昼ごはん




  16
        16
お昼ごはん




  17
        17
3時間目




 18
       18
3時間目
• ググってたらAppCodeとか出て来たの
 でそれが使えるか試す

• AndroidでAppCodeが使えるかわから
 なかったのでやめる

• Androidでは動いたのでiPhoneで試す
• install-templates-xcode.shで速効
              19
                                  19
4時間目




 20
       20
4時間目
• iPhoneとAndroidのソースの共有をして
 みたい

• Androidのソースを移動させると
 build_native.shはできるけどEclipseでな
 んかうまくいかない。
 おそらくパス的な何か

• いったんあきらめる
              21
                                  21
コーヒーブレイク




   22
           22
コーヒーブレイク




   23
           23
5時間目




 24
       24
5時間目
•   xcodeのプロジェクトに含まれるソースを
    Androidの方を参照するようにした

•   プロジェクトが2カ所に散らばるけどとりあえず
    問題なさげ

•   xcodeからソースを編集してAndroidのビルドを
    試したりする

•   買ってから数回しか起動していない
    ParticleDesignerを起動

                    25
                                  25
6時間目




 26
       26
6時間目
•   ParticleDesignerで適当なプリセットをそのまま出力

•   xcodeに追加して実行
    CCParticleSystemQuad* particle =
     CCParticleSystemQuad::create("particle.plist");
    this->addChild(particle);
    particle->autorelease();

•   Androidでも動く

•   しばらく感動


                          27
                                                       27
7時間目




 28
       28
7時間目
•   ねじさんが発表していたときにDLしたCocosBuilderを起動
    (数カ月ぶり3回目)

•   さっぱりわからないのでググる

•   Exampleを落とすとCocos2d(notX)のソースしかついてない

•   げ、xじゃ使えないの?

•   と、思ったけどそんなことは無かった。

•   xではExampleに入ってるCocosBuilder読み込みとかのライブ
    ラリが標準で入ってるらしい

•   すばらしいと思いつつCocosBuilderを適当に弄るがわからない


                    29
                                            29
8時間目




 30
       30
8時間目
•   ここらへんからxcodeがおかしくなり始める
    The selected destination does not support the architecture for
    which the selected software is built. Switch to a destination that
    supports that architecture in order to run the selected software.

•   ググりながらスプライトやラベルを配置してみるがうまくいかない
    extension::CCNodeLoaderLibrary* ccNodeLL =
     extension::CCNodeLoaderLibrary::sharedCCNodeLoaderLibrary();
    extension::CCBReader* ccbReader =
      new extension::CCBReader(ccNodeLL);
    CCNode* ccbNode =
      ccbReader->readNodeGraphFromFile("HelloCocosBuilder.ccbi");
    this->addChild(ccbNode);


                                 31
                                                                         31
9時間目(補習)




   32
           32
9時間目(補習)
•   CustomClassを入れてるとAssertに引っかかる?
    空にしたら動いた?

•   zip形式はxでは使えない

•   CocosBuilderでPublishしてもファイルが更新されな
    い?ことがある

•   なのでPublish先のファイル(ccbi)を先に削除しておく

•   Androidのビルドはやり直したかったら
    ./build_native.sh clean で


                   33
                                        33
まとめ



 34
      34
導入



35
     35
iPhoneの場合
1. xcodeをインストール

2. install-templates-xcode.sh

3. 新規プロジェクトでCocos2d-x

4. 実行ターゲットの設定


  以上

                  36
                                36
Androidの場合
1.   AndroidSDK+Eclipseをインストール

2.   NDKをインストールしてパス設定
     export NDK_ROOT="installed_dir"

3.   create-android-project.sh

4.   <project>/proj.androidに移動して
     build_native.sh

5.   EclipseにCocos2d-xのライブラリをインポート

6.   Eclipseに作成したプロジェクトをインポート

7.   実行環境の設定

     以上



                                 37
                                       37
• 本当にソース・リソースは共有できた
• ParticleDesignerも使えた
• CocosBuilderも使えた
• 両方で開発するならxcodeメインで
 必要に応じてAndroidをビルド

• StackOverflowが役に立った

            38
                         38
最後に

• ググると
 「うまくいった」という情報は多いけど
 「うまくいかない」という情報が少ない

• 「うまくいかない」も恥ずかしがらずに
 共有できればもっとみんな助かるはず


          39
                       39
• ありがとうございました



         40
                40

Cocos2dx 8hour