気分が乗り次第他のページも和訳していく予定。
元記事:prog_guide:basic_concepts – cocos2d for iPhone
以下翻訳
cocos2d 基本コンセプト
cocos2dで開発をする上で、いくつかのコンセプトを理解しておく必要がある。
- シーン(Scenes)
- ディレクター(Director)
- レイヤー(Layers)
- スプライト(Sprites)
Layers
Scene(CCSceneオブジェクトで実装)は、Appの遷移のを表現する一部品である。人によっては、「スクリーン」や、「ステージ」のほうがしっくりくるかもしれない。
Appは複数のSceneを持つことができるが、同時にひとつのSceneしか表示することができない。
例:あなたが作ったゲームは、次のようなSceneから構成されるかもしれない:イントロ画面、メニュー画面、第1ステージ、第1カットシーン、第2ステージ、勝利カットシーン、敗北カットシーン、ハイスコア画面。
これらの画面・カットシーンは、それぞれSceneとして定義できる。お互いの間に若干のデータ受け渡し・ロジック等は発生するが、おおまかには独立していると言えるだろう。
cocos2dの CCScene は、1つ以上の重なりあったLayer(CCLayerオブジェクトで実装)から構成される。Layerは、見た目と挙動をSceneに与える。
通常は、必要なLayerだけでSceneを構成することになるだろう。
CCSceneファミリーのなかには、SceneとSceneの遷移(フェードイン・フェードアウト、スライド、などなど)を表現してくれる、Transitionと呼ばれるものもある(CCTransitionSceneオブジェクトで実装)。
SceneはCCNodeのサブクラスなので、手動もしくはactionででも操作できる。詳しくは、「Actions(和訳予定)」を参考に。
Director
CCDirectorは、SceneからSceneへの遷移を担当するコンポーネントである。
CCDirectorは、シングルトンなオブジェクトだ。どのSceneが現在表示されているかを管理し、SceneのStackももっており、様々な "Scene Call"(新しいSceneをPushしてそれを表示している間、最初に表示されていたLayerは停止している、等)を可能にしている。
CCSceneがSceneのPush, Replaceを要求した時に、実際にそれを実行するのがCCDirectorである。
OpenGL ESの初期化もまた、CCDirectorの仕事である。
CCDirectorは、シングルトンなオブジェクトだ。どのSceneが現在表示されているかを管理し、SceneのStackももっており、様々な "Scene Call"(新しいSceneをPushしてそれを表示している間、最初に表示されていたLayerは停止している、等)を可能にしている。
CCSceneがSceneのPush, Replaceを要求した時に、実際にそれを実行するのがCCDirectorである。
OpenGL ESの初期化もまた、CCDirectorの仕事である。
Layers
CCLayerは、描画エリア(画面いっぱい)と同じサイズを持っており、自身を描画するための情報が入ってる。
透過も対応しているので、背後のLayerが見えることもある。
Layerには、見た目と挙動を定義しているので、ほとんどのプログラミングはCCLayerのサブクラスの実装になるだろう。
CCLayerは、イベントのハンドラーが定義されている場所です。
イベントは、いずれかのLayerが受け取るまで(手前のLayerから背後のLayerへと)通知されます
(訳注:Fix Meのアイコンがあったので、間違ってるかも。)
マジなAppの場合、カスタムなCCLayerをプログラミングすることが要求されるが、cocos2dはある程度便利なCCLayerを提供している(シンプルなメニューのCCMenu、色レイヤーのCCLayerColor、CCLayerを切り替えできるマルチプレクサーのCCLayerMultiplex、などなど)。
Layerは、CCSpriteオブジェクト、CCLabelオブジェクト、そして他のCCLayerオブジェクトも子として含むことができる。
LayerはCCNodeのサブクラスなので、手動もしくはactionででも操作できる。詳しくは、「Actions(和訳予定)」を参考に。
Sprites
cocos2dのSpriteは、いわゆる普通のスプライトである。2Dの画像で、移動・回転・拡大縮小・アニメーションさせることができる。
Sprite(CCSpriteオブジェクトで実装)は、他のSpriteを子として含むことができる。
親を変移動・変形すると、子も同じように移動・変形します。
SpriteはCCNodeのサブクラスなので、手動もしくはactionででも操作できる。詳しくは、「Actions(和訳予定)」を参考に。
0 件のコメント:
コメントを投稿