cocos2d-­‐x	
  3.0	
  
alpha0-­‐pre	
 
クロスプラットフォーム開発環境構築について
清水	
 友晶	
 
•  株式会社TKS2	
  
スマートフォンアプリ開発

(iOS,	
  Android,	
  Windows	
  Phone	
  8)	
  
Webコンテンツ開発	
 
•  cocos2d-­‐xへの開発参加

cocos2d-­‐xを利用したアプリ開発

講演活動

執筆活動	
 
•  Twi;er:	
  tks2shimizu	
  
•  Blog:	
  h;p://tks2.net/memo	
  
•  SlideShare:	
  h;p://www.slideshare.net/doraemonsss	
  
•  Facebook:	
  h;p://www.facebook.com/doraemonsss	
  
•  6/25発売	
  
•  2,800円	
 +	
 税	
  
•  400ページ	
 
•  6/18発売	
  
•  2,980円	
 +	
 税	
  
•  312ページ(オールカ
ラー)	
  
•  h;p://cocos2d-­‐x.jp	
  
•  cocos2d-­‐x開発元Chukong	
  Technologies社公認	
  
•  cocos2d-­‐xのための自由なコミュニティー	
  
•  入門者から上級者まで誰でもOK!!ぜひご参加を!	
  
•  cocos2d-­‐xに関することなら何でも投稿できます!!	
  
•  h;ps://www.facebook.com/groups/152840204871454/	
  
•  9/19	
  第12回	
 shinjuku.cocos2d-­‐x	
  
•  10/11	
  第3回cocos2d-­‐x開発事例勉強会	
  
•  10/17	
  shinjuku.cocos2d-­‐x初心者ハンズオン	
  
    〜CocosBuilderを利用した開発の進め方〜	
 
•  10/24	
  第13回	
 shinjuku.cocos2d-­‐x	
  
•  11/M	
  shinjuku.cocos2d-­‐x初心者ハンズオン	
  
    〜cocos2d-­‐xを利用したクロスプラットフォーム開発環境構築〜	
 
•  11/M	
  第13回	
 shinjuku.cocos2d-­‐x	
  
目次	
 
•  cocos2d-­‐xの紹介	
  
•  cocos2d-­‐xの開発環境を整える	
  
•  iOS	
  
•  Android	
  
•  テンプレートプロジェクトから学ぶ	
  
•  今後の勉強方法について	
  
cocos2d-­‐xの紹介	
 
•  2Dゲームフレームワーク	
  
•  オープンソース(MITライセンス)	
  
•  マルチプラットフォーム開発	
  
•  Android,	
  iOS,	
  …(7種類)	
  
•  Win32,	
  Mac,	
  Linux	
  
•  開発言語	
  …	
  C++,	
  Lua,	
  Javascript	
  
•  どんなことができるのか?	
  
	
  èTestCPPを見てみましょう
cocos2d-­‐xで作るメリット	
 
•  オープンソース(MITライセンス)	
  
•  無償	
  
•  ソース公開	
  
•  クロスプラットフォーム開発	
  
•  開発期間の短縮	
  
•  資産の有効活用	
  
•  効率化	
  
•  OpenGLを知らなくても、パフォーマンスの高い画像処
理を行うことができる	
  
•  cocos2d	
  for	
  iPhoneからの移行が容易	
  
•  cocos2d	
  for	
  iPhoneとクラス名が同じ
cocos2d-­‐xで作るデメリット	
 
•  ネイティブ間の連携が面倒	
  
•  Androidの場合、C++からAndroid	
  SDKへのア
クセス	
  
(JNIを使用する必要がある)	
  
•  iOSの場合、C++からObjec`ve-­‐Cへのアクセス	
  
(Objec`ve-­‐C++があるため	
  
 比較的容易)	
  
cocos2d-­‐xの開発環境を整える	
 
•  cocos2d-­‐xインストール	
  
•  Xcodeインストール	
  
•  プロジェクト作成	
  
•  iOS実機・シミュレータでの起動
cocos2d-­‐xの開発環境を整える	
 
•  cocos2d-­‐xダウンロード	
  
h;p://www.cocos2d-­‐x.org/projects/cocos2d-­‐x/wiki/Download	
  
•  任意のディレクトリへ展開	
  
/Users/Sumomo/cocos2d-­‐x-­‐3.0alpha0-­‐pre	
  
cocos2d-­‐xの開発環境を整える	
 
•  Mac	
  App	
  StoreよりXcodeダウンロード	
  
cocos2d-­‐xの開発環境を整える	
 
•  project-­‐creatorによるプロジェクト作成	
  
cocos2d-­‐x-­‐3.0alpha0-­‐pre/tools/project_creator/
create_project.py	
  
•  ディレクトリ移動	
  
cd	
  cocos2d-­‐x-­‐3.0alpha0-­‐pre/tools/project_creator/	
  
•  create_project.py実行	
  
./create_project.py	
  -­‐p	
  MyProject	
  -­‐k	
  net.tks2.myproject	
  -­‐l	
  cpp	
  
•  オプション	
  
•  -­‐p	
  …	
  プロジェクト名	
  
•  -­‐k	
  …	
  パッケージ名	
  
•  -­‐l	
  …	
  言語(cpp,	
  lua,	
  javascript)	
  
•  cocos2d-­‐x-­‐3.0alpha0-­‐pre/projectsにプロジェクトが作成
される	
  
cocos2d-­‐xの開発環境を整える	
 
•  プロジェクトをXcodeで起動	
  
•  cocos2d-­‐x-­‐3.0alpha0-­‐pre/projects/MyProject/proj.ios/
MyProject.xcodeproj	
  
•  iOS実機・シミュレータ起動	
  
•  Run	
  
cocos2d-­‐xの開発環境を整える	
 
•  cocos2d-­‐xをインストールしたディレクトリ直下にプ
ロジェクト作成のための実行ファイルが用意された。	
  
•  create-­‐mul`-­‐plaform-­‐projects.py	
  
•  利用するには修正が必要	
  
•  1行目	
 evn	
  è	
  env	
  
•  改行コードを¥nに変更	
  
Android向け開発環境の構築	
 
•  cocos2d-­‐xインストール	
  
•  Android	
  SDK	
  +	
  Eclipseインストール	
  
•  Android	
  NDKインストール	
  
•  ADT(Eclipse)の設定	
  
•  プロジェクト作成	
  
•  Android実機転送
Android向け開発環境の構築	
 
•  cocos2d-­‐xダウンロード	
  
h;p://www.cocos2d-­‐x.org/projects/cocos2d-­‐x/wiki/Download	
  
•  任意のディレクトリへ展開	
  
/Users/Sumomo/cocos2d-­‐x-­‐3.0alpha0-­‐pre	
  
Android向け開発環境の構築	
 
•  Android	
  SDK	
  +	
  Eclipseダウンロード	
  
h;p://developer.android.com/sdk/	
  
•  任意のディレクトリへ展開	
  
/Users/Sumomo/adt-­‐bundle-­‐mac	
  
Android向け開発環境の構築	
 
•  Android	
  NDK	
  r8e	
  (32bit)ダウンロード	
  
h;p://developer.android.com/tools/sdk/ndk/	
  
•  任意のディレクトリへ展開	
  
/Users/Sumomo/android-­‐ndk-­‐r8e	
  
Android向け開発環境の構築	
 
•  SDK	
  Manager起動	
  
Window	
  >	
  Android	
  SDK	
  Manager	
  
Android	
  2.3.3	
  (API	
  10)	
  >	
  SDK	
  Plaform	
  
Android向け開発環境の構築	
 
•  Eclipseの設定	
  
•  Eclipse起動	
  
•  ADT(Eclipse)	
  >	
  環境設定	
  
•  General	
  >	
  Workspace	
  >	
  Linked	
  Resources	
  
•  COCOS2DX	
  è	
  cocos2dxのディレクトリ	
  
•  C/C++	
  >	
  Build	
  >	
  Environment	
  
•  NDK_ROOT	
  è	
  Android	
  NDKのディレクトリ	
  
•  libcocos2dxプロジェクトのインポート	
  
•  File	
  >	
  New	
  >	
  Project	
  
cocos2d-­‐x-­‐3.0alpha0-­‐pre/cocos2dx/plaform/android/java	
  
プロジェクト作成	
 
•  project-­‐creatorによるプロジェクト作成	
  
cocos2d-­‐x-­‐3.0alpha0-­‐pre/tools/project_creator/
create_project.py	
  
•  ディレクトリ移動	
  
cd	
  cocos2d-­‐x-­‐3.0alpha0-­‐pre/tools/project_creator/	
  
•  create_project.py実行	
  
./create_project.py	
  -­‐p	
  MyProject	
  -­‐k	
  net.tks2.myproject	
  -­‐l	
  
javascript	
  
•  オプション	
  
•  -­‐p	
  …	
  プロジェクト名	
  
•  -­‐k	
  …	
  パッケージ名	
  
•  -­‐l	
  …	
  言語(cpp,	
  lua,	
  javascript)	
  
•  cocos2d-­‐x-­‐3.0alpha0-­‐pre/projectsにプロジェクトが作成
される	
  
プロジェクト作成	
 
•  Eclipseでプロジェクトを読込む	
  
•  File	
  >	
  New	
  >	
  Project	
  
•  Android	
  >	
  Android	
  Project	
  from	
  Exis`ng	
  Code	
  
•  Android実機転送(シミュレータでも可)	
  
•  Run	
  >	
  Run	
  
テンプレートプロジェクトから学ぶ	
 
•  プロジェクトには次のディレクトリがある	
 
•  Classes	
  
èソースファイルを格納	
  
•  Resources	
  
è画像・音声などのリソースファイルを格納	
  
•  最初に用意されているクラスは次の2つ	
 
•  AppDelegateクラス	
  
•  HelloWorldクラス
テンプレートプロジェクトから学ぶ	
 
•  AppDelegateには次のメソッドがある	
 
•  applica`onDidFinishLaunching()	
  
•  アプリ起動時に処理され、アプリのセッティングを行う	
 
•  最初のシーンを呼び出す	
 
•  applica`onDidEnterBackground()	
  
•  アプリがスリープする時に処理され、アプリの停止を行う	
 
•  applica`onWillEnterForeground()	
  
•  アプリ復帰時に処理され、アプリの再開を行う
テンプレートプロジェクトから学ぶ	
 
•  HelloWorldScene.cppファイルのspriteをさわってみる	
 
•  位置変更	
 
sprite-­‐>setPosi`on(	
  Point(0,	
  0)	
  );	
  
•  拡大・縮小	
 
sprite-­‐>setScale(2.0f);	
  
•  回転	
 
sprite-­‐>setRota`on(90.0f);	
  
•  アンカーポイント	
 
sprite-­‐>setAnchorPoint(	
  Point(0,	
  0)	
  );	
  
•  透過	
 
sprite-­‐>setOpacity(127);	
  
テンプレートプロジェクトから学ぶ	
 
•  オブジェクトを移動させてみる	
 
2秒で画面右端へ移動する	
 
MoveTo*	
  move	
  =	
  MoveTo::create(2.0f,	
  Point(size.width,	
  size.height	
  /	
  2));	
  
sprite-­‐>runAc`on(move);	
  
テンプレートプロジェクトから学ぶ	
 
•  Ac`on	
  
h;p://www.cocos2d-­‐x.org/reference/na`ve-­‐cpp/d7/d32/
classcocos2d_1_1_finite_`me_ac`on.html	
  
•  移動	
  
MoveTo,	
  MoveBy	
  
•  回転	
  
RotateTo,	
  RotateBy	
  
•  フェードイン・フェードアウト	
  
FadeIn,	
  FadeOut
今後の勉強方法について	
 
•  cocos2d-­‐x	
  Wikiを調べる	
  
h;p://www.cocos2d-­‐x.org/projects/cocos2d-­‐x/wiki	
  
•  cocos2d-­‐x	
  Referenceを調べる	
  
•  TestCppで調べる	
  
•  ググってみる	
  
•  cocos2d-­‐x	
  フォーラムで質問する	
  
•  cocos2d-­‐x.jp	
  communityで質問する

20130912 macでcocos2d x 3.0alphaを使用した、クロスプラットフォーム開発環境構築について