macでcocos2d-x...
DESCRIPTION
Macでcocos2d-x 3.0betaを使用した、クロスプラットフォーム開発環境構築についてTRANSCRIPT
cocos2d-‐x 3.0 beta クロスプラットフォーム開発環境構築について
清水 友晶
• 株式会社TKS2 スマートフォンアプリ開発Webコンテンツ開発
• 日本cocos2d-‐xユーザ会代表 cocos2d-‐xへの開発参加cocos2d-‐xを利用したアプリ開発講演活動執筆活動
• チラ裏開発メモ: h1p://tks2.net/memo • SlideShare: h1p://www.slideshare.net/doraemonsss
• 6/25発売 • 2,800円 + 税 • 400ページ
• 6/18発売 • 2,980円 + 税 • 312ページ
| 日経ソフトウェア2014年2月号
• 日本cocos2d-‐xユーザ会 h1p://cocos2d-‐x.jp
• cocos2d-‐x開発元Chukong Technologies社公認 • cocos2d-‐xのための自由なコミュニティー • 入門者から上級者まで誰でもOK!!ぜひご参加を!(約1,100人) • cocos2d-‐xに関することなら何でも投稿できます!! • Chukong Technologies社の開発者も投稿しています!! • h1ps://www.facebook.com/groups/cocos2dxjp/
• 1/16 shinjuku.cocos2d-‐x初心者ハンズオン 〜cocos2d-‐xを利用したクロスプラットフォーム開発環境構築〜
• 1/23 第16回 shinjuku.cocos2d-‐x 〜cocos2d-‐xにおけるデータ管理〜
• 2/20 第17回 shinjuku.cocos2d-‐x
目次
• cocos2d-‐xの紹介 • cocos2d-‐xの開発環境を整える • iOS • Android
• テンプレートプロジェクトから学ぶ • 今後の勉強方法について
cocos2d-‐xとは • 2Dゲームフレームワーク • オープンソース(MITライセンス) • マルチプラットフォーム開発(10数種類) • Android 2.3 ~, iOS 5.0 ~, Windows Phone 8, Windows 7 ~, Mac OS X 10.7 ~
• 開発言語 … C++, Lua, Javascript • 公式に発表されているだけでもZynga, Wooga, Gamevil, Glu, GREE, Konami, TinyCo, HandyGames, IGG, Disney Mobileなどがゲームやアプリに採用している
• 公式コミュニティでは、Chukong, Google, Microsoa, ARM, Intel, BlackBerryの開発者が参加している
開発の手順
• iOSとAndroidのクロスプラットフォーム開発の場合
iOS Android
Xcode Ant or Eclipse
メインで開発 たまに確認
cocos2d-‐xで作るメリット • オープンソース(MITライセンス) • 無償 • ソース公開
• クロスプラットフォーム開発 • 開発期間の短縮 • 資産の有効活用
• 効率化 • OpenGLを知らなくても、パフォーマンスの高い画像処理を行うことができる
• cocos2d for iPhoneからの移行が容易 • cocos2d for iPhoneとクラス名が同じ
cocos2d-‐xで作るデメリット • ネイティブ間の連携が面倒 • Androidの場合、C++から Android SDKへのアクセス (JNIを使用する必要がある)
• iOSの場合、C++からObjecfve-‐Cへの アクセス (Objecfve-‐C++があるため 比較的容易)
• cocos2d-‐xはフレームワークであるため、画面構成やアニメーションの作成に時間がかかる • 別途エディタを利用する
iOS向け開発環境の構築
• cocos2d-‐xインストール • Xcodeインストール • プロジェクト作成 • iOS実機・シミュレータでの起動
iOS向け開発環境の構築
• cocos2d-‐xダウンロード h1p://www.cocos2d-‐x.org/download
• 任意のディレクトリへ展開 /Users/Sumomo/cocos2d-‐x-‐3.0beta
iOS向け開発環境の構築
• Mac App StoreよりXcodeダウンロード
iOS向け開発環境の構築
• project-‐creatorによるプロジェクト作成 cocos2d-‐x-‐3.0beta/tools/project-‐creator/create_project.py • ターミナルでcreate_project.pyを実行 • createボタンでプロジェクトを作成
• {projectPath}/{projectName}にプロジェクトが作成される
iOS向け開発環境の構築 • プロジェクトをXcodeで起動 • MyProject/proj.ios_mac/MyProject.xcodeproj
• iOS実機・シミュレータ起動 • Run
Android向け開発環境の構築
• cocos2d-‐xインストール • Android SDKインストール • Android NDKインストール • Apache ANTインストール • プロジェクト作成 • Android実機転送
Android向け開発環境の構築
• cocos2d-‐xダウンロード h1p://www.cocos2d-‐x.org/download
• 任意のディレクトリへ展開 /Users/Sumomo/cocos2d-‐x-‐3.0beta
Android向け開発環境の構築
• Android SDKダウンロード h1p://developer.android.com/sdk/
• 任意のディレクトリへ展開 /Users/Sumomo/adt-‐bundle-‐mac
Android向け開発環境の構築
• Android NDK r9b (64bit)ダウンロード h1p://developer.android.com/tools/sdk/ndk/
• 任意のディレクトリへ展開 /Users/Sumomo/android-‐ndk-‐r9b
Android向け開発環境の構築
• project-‐creatorによるプロジェクト作成 cocos2d-‐x-‐3.0beta/tools/project-‐creator/create_project.py • ターミナルでcreate_project.pyを実行 • createボタンでプロジェクトを作成
• {projectPath}/{projectName}にプロジェクトが作成される
Android向け開発環境の構築
• パスの設定 • ~/.bash_profile
• NDK_ROOT • ANDROID_SDK_ROOT
例: NDK_ROOT=/Users/Tomoaki/android-ndk-r9b!export NDK_ROOT!ANDROID_SDK_ROOT=/Users/Tomoaki/adt-bundle-mac-x86_64-20131030/sdk!export ANDROID_SDK_ROOT
Android向け開発環境の構築
• buil_nafve.pyによりビルドを行う • build_nafve.py –p 19 –b debug
• Android実機転送 • ant debug install
テンプレートプロジェクトから学ぶ
• プロジェクトには次のディレクトリがある • Classes
èソースファイルを格納
• Resources è画像・音声などのリソースファイルを格納
• 最初に用意されているクラスは次の2つ • AppDelegateクラス • HelloWorldクラス
テンプレートプロジェクトから学ぶ
• AppDelegateには次のメソッドがある • applicafonDidFinishLaunching()
• アプリ起動時に処理され、アプリのセッティングを行う • 最初のシーンを呼び出す
• applicafonDidEnterBackground() • アプリがスリープする時に処理され、アプリの停止を行う
• applicafonWillEnterForeground() • アプリ復帰時に処理され、アプリの再開を行う
テンプレートプロジェクトから学ぶ • HelloWorldScene.cppファイルのspriteをさわってみる • 位置変更
sprite-‐>setPosifon( Point(0, 0) );
• 拡大・縮小 sprite-‐>setScale(2.0f);
• 回転 sprite-‐>setRotafon(90.0f);
• アンカーポイント sprite-‐>setAnchorPoint( Point(0, 0) );
• 透過 sprite-‐>setOpacity(127);
テンプレートプロジェクトから学ぶ
• オブジェクトを移動させてみる 2秒で画面右端へ移動する
auto move = MoveTo::create(2.0f, Point(size.width, size.height / 2)); sprite-‐>runAcfon(move);
テンプレートプロジェクトから学ぶ
• Acfon h1p://www.cocos2d-‐x.org/reference/nafve-‐cpp/V3.0alpha0/db/d61/classcocos2d_1_1_acfon.html • 移動
MoveTo, MoveBy • 回転
RotateTo, RotateBy
• フェードイン・フェードアウト FadeIn, FadeOut
今後の勉強方法について
• cocos2d-‐x Wikiを調べる h1p://www.cocos2d-‐x.org/wiki
• cocos2d-‐x Referenceを調べる • TestCppで調べる • ググってみる • cocos2d-‐x フォーラムで質問する • cocos2d-‐x.jp communityで質問する • cocos2d-‐xに詳しい友人を作る