cocos環境構築メモ

cocos自体のインストール

まずは本体を公式からダウンロード。 現時点で最新版のv3.3にした。

$ mkdir ~/lib
$ mv /path/to/cocos2d-x ~/lib/cocos2d-x
$ cd ~/lib/cocos2d-x
$ ./setup.py

こいつらは現状インストールしていないから全部スキップした。

Please enter the path of NDK_ROOT (or press Enter to skip):
Please enter the path of ANDROID_SDK_ROOT (or press Enter to skip):
Please enter the path of ANT_ROOT (or press Enter to skip):

下記の内容が(zshを使っていれば)~/.zshrcに書き込まれる。

# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_CONSOLE_ROOT=/Users/mihyaeru/lib/cocos2d-x/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH

# Add environment variable COCOS_X_ROOT for cocos2d-x
export COCOS_X_ROOT=/Users/mihyaeru/lib/cocos2d-x
export PATH=$COCOS_X_ROOT:$PATH

# Add environment variable COCOS_TEMPLATES_ROOT for cocos2d-x
export COCOS_TEMPLATES_ROOT=/Users/mihyaeru/lib/cocos2d-x/templates
export PATH=$COCOS_TEMPLATES_ROOT:$PATH

cocosコマンドが使えるようになる。

$ source ~/.zshrc
$ which cocos
/Users/mihyaeru/lib/cocos2d-x/tools/cocos2d-console/bin/cocos

お試しプロジェクト

新規プロジェクトを作成してみる。

$ cd ~/pj/cocos
$ cocos new FirstSample -p com.mihyaeru.first_sample -l cpp
Running command: new
> Copy template into /Users/mihyaeru/pj/cocos/FirstSample
> Copying cocos2d-x files...
> Rename project name from 'HelloCpp' to 'FirstSample'
> Replace the project name from 'HelloCpp' to 'FirstSample'
> Replace the project package name from 'org.cocos2dx.hellocpp' to 'com.mihyaeru.first_sample'
> Replace the mac bundle id from 'org.cocos2dx.hellocpp' to 'com.mihyaeru.first_sample'
> Replace the ios bundle id from 'org.cocos2dx.hellocpp' to 'com.mihyaeru.first_sample'

こんな構造(1階層目だけ)になっている。

FirstSample
├── CMakeLists.txt
├── Classes
├── Resources
├── cocos2d
├── proj.android
├── proj.ios_mac
├── proj.linux
├── proj.win32
├── proj.win8.1-universal
└── proj.wp8-xaml

このコマンドで(ビルドしつつ)起動できる。

cocos run -p ios

ここまでで、README.mdに書かれている内容の自分向けメモが終わり。

ソースを弄ってみる

Classes/HelloWorldScene.cpp内のHelloWorld::init()に次のコードを追加してみる。 ボタンを押すとHelloWorldのラベルがhogeに変わるだけのサンプル。

auto buttonItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png", [label](Ref *sender) {
    label->setString("hoge");
});
buttonItem->setPosition(Vec2(200, 200));

auto buttonMenu = Menu::create(buttonItem, NULL);
buttonMenu->setPosition(Vec2::ZERO);
this->addChild(buttonMenu, 2);

とりあえず動かせたのでこの記事は終了。 Android版については今回は使用しないから割愛。

以降は...

昔のCocos2dの記憶を思い出しつつ、C++を頑張るぞい。