あーるPG - 社会人のデジタル生活

日曜プログラマになろうかなーと思った30代理系社会人の、キャリアアップや趣味(特にデジタル情報)の記録。らーめんとビールが好き。

cocos2dの本読んだまとめ

cocos2d-x書籍はいまのところ韓国でしか発売されていないようなので、cocos2dの本を選択せざるを得ません。
最近ver.2.xがリリースされ、以前とは色々変わっているようなので注意です。
久保島 祐磨 著「cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う!」はver.2.xに対応したcocos2d本です。cocos2dの雰囲気を知ることが出来るので良かったですよ。でも細かいところは書籍とリファレンスを見てください。

cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う! (I・O BOOKS)

cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う! (I・O BOOKS)

Log

・CCLog関数を使用する

クラスツリーと基本構成

・Nodeクラスがほぼすべての基底クラス

インスタンスの関連
CCScene -(1:n)- CCLayer -1:n- CCSprite, CCLabelTTFなど
CCSceneが1画面の表示単位。Layerを複数持てる。

・機能クラスとしてCCDirectorがシングルトンで存在。

座標

画面座標は左下が0。標準で基準点がCCSpriteの真ん中。
つまり0,0にスプライトを置くと右上1/4しか表示されない。

メニュー

インスタンスの関連
CCMenu -(1:n) - CCMenuItem, CCMenuItemFont, CCMenuItemImage, CCMenuItemToggleなど。
CCMenuItemはそれぞれの項目行。画像メニューならCCMenuItemImageを使う。

CCMenuはメニューマネージャー。各項目を登録する。
登録する際はmenuWithItems関数を使う。列挙して最後をnilにすると、CCMenuに一括で登録できる。

アクション

各Nodeにアクションを登録しておくと、ファイバー的に動いてくれる。
基底クラスはCCAction。

Rotate, Scale, Moveなど、アフィン変換で表現できるもの。
Jump,CardinalSpile、Bezierなど、複雑な動きもある。
Blink, FadeIn, FadeOut、Tint(色変化)、Animate(パラパラアニメ)など、効果を変更するものも。
CCallで、独自のアクションを実装できる。


CCSpawnで複数を列挙して登録できる。CCSequenceで連続してアクションする。
CCRepeatで繰り返し。CCDelayTImeでアクションを一定時間待機する。
scheduleメソッドでアクションを登録すると、開始時間を予約できる。繰り返し、インターバルの指定も可。


先頭にEaseを付けると、アクションの加速度を指定できる。
末尾にTo,Byで目的状態を指定するか、初期状態を指定するかが変わる。
例:CCRotateTo・・・n度になるまで回転

パーティクル

システムとして実装されている。
CCParticleSnow、CCParticleRainなど、ひな形クラスを利用すると良い。

サウンド

インストール時に選択した、SimpleAudioEngineを使用する。

入力

Layerであれば、プロパティのisTouchEnableをONにすれば使える。
開始、終了、タッチ中(ドラッグ)のコールバック関数を設定する必要がある。

その他のNodeにも、Dispathcerの指定、コールバック関数の指定をすれば、CCDirectorがDelegateしてくれる。

プラットフォームによる分岐

cocos2dx\platform\CCPlatformConfig.h で定義されている。

// define supported target platform macro which CC uses.
#define CC_PLATFORM_UNKNOWN 0
#define CC_PLATFORM_IOS 1
#define CC_PLATFORM_ANDROID 2
#define CC_PLATFORM_WIN32 3
#define CC_PLATFORM_MARMALADE 4
#define CC_PLATFORM_LINUX 5
#define CC_PLATFORM_BADA 6
#define CC_PLATFORM_BLACKBERRY 7
#define CC_PLATFORM_MAC 8

cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う! (I・O BOOKS)

cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う! (I・O BOOKS)