CCScene、CCLayer、CCSpriteについて
公開日:
:
未分類
こんばんわmk18です。
今回は、画面に表示されるクラスについて説明します。
CCSceneとCCLayerについて
サンプルのクラスの構造をみると、HelloWorldはCCLayerColorというCCLayerを継承しています。
そして、自分のクラス内にCCSceneを持っています。
static cocos2d::CCScene* scene();
素直に、CCSceneを継承せず、CCLayerColorを継承したクラスが画面の1つのシーンに対応しています。
次にGameOverScene.hを見てみると2つのクラスが有ります。
CCLayerColorを継承しているクラスとCCSceneを継承しているクラスの2つです。
class GameOverLayer : public cocos2d::CCLayerColor
class GameOverScene : public cocos2d::CCScene
GameOverSceneにはCC_SYNTHESIZE_READONLY(GameOverLayer*, _layer, Layer);というマクロで_layerがクラスの持ち物になっています。
シーンがレイヤを持っていたり、レイヤがシーンをもっていたりと2つのパターンがありますがどちらも、シーンの切り替えなどが正常に動作する、外側から見ると「画面=シーン」という感じで理解して下さい。
「画面遷移=シーンの切り替え」とか言ったりします。
クラスの形が違うので、シーン切り替えのソースが違いますがどちらも、CCSceneのインスタンスを使って切り替えています。
HelloWorld::scene();でシーンを作って遷移する。
CCScene *pScene = HelloWorld::scene();
pDirector->runWithScene(pScene);
GameOverScene::create();でシーンを作って遷移する
GameOverScene *gameOverScene = GameOverScene::create();
gameOverScene->getLayer()->getLabel()->setString(“You Lose :[“);
CCDirector::sharedDirector()->replaceScene(gameOverScene);
CCLayerとCCSpriteについて
CCSceneが持つCCLayerにCCSpriteを追加すると画面に画像が表示されます。
CCSpriteは画像と1:1に対応したテクスチャをレイヤーに貼り付けるものだと理解して下さい。
bool HelloWorld::init()でスプライトを貼り付けているソースが以下です。
CCSprite *player = CCSprite::create(“Player.png”, CCRectMake(0, 0, 27, 40) );
player->setPosition( ccp(origin.x + player->getContentSize().width/2,origin.y + visibleSize.height/2) );
this->addChild(player);
createでインスタンス化してsetPositionで位置を決めてthisはレイヤーなのでレイヤにaddChildしています。
CCSpriteに createメソッドがたくさんあるのでざーっとソースを見るのもいいかと思います。
cocos2d-xでは createメソッドでメモリーを確保してポインターを返します。
今回のCCScene、CCLayer、CCSpriteの関係は今後も使うので、ソースコードを覚える感じで理解して下さい。
ロードマップ(今後の予定)
C++の勉強方法について
cocos2-xの環境構築とサンプルの実行
SampleGameソースコードの説明
OpenGLとテクスチャの理解
CCScene、CCLayer、CCSpriteについて ←いまここ
SimpleGameの機能追加
cocos2-xの座標と画像ファイル
CCSpriteとTexture Packer について
私が作っているアプリ
だいたい毎日、1起動あたり1円の収益があります。
1ダウンロード当たりだと50円の収益です。
DAUは2000ぐらいです。
広告は4箇所に貼っています。
関連記事
-
企画とプログラマー、デザイナー以外の仕事について
こんばんわmk18です。 プログラミングの勉強と平行して企画の勉強もして行きましょう。 理想のチ
-
SampleGameソースコードの説明
こんばんわmk18です。 今回よりcocos2d-xの内容に入って行きます。 SimpleGam
-
SimpleGameの機能追加
こんばんわmk18です。 前回のまでの内容は終わったでしょうか? ここで一旦、アウトプットをしま
-
CCSpriteとTexture Packer について
こんばんわmk18です。 課題の方は進んでいますでしょうか? 今回はスプライトの貼り方です。
-
CとC++の勉強方法について
こんばんわmk18です。 先日はお疲れ様でした。 11名の集まるとはびっくりです。
-
cocos2-xの環境構築とサンプルの実行
こんばんわmk18です。 今回は、cocos2d-xの環境構築をします。 Android
-
OpenGLとテクスチャの理解
こんばんわmk18です。 cocos2d-xはOpenGLという技術を使って描画しています。 c
-
cocos2-xの座標と画像ファイル
こんばんわmk18です。 今回は、実際のゲーム画面に近い物をつくります。 座標はいま私が作ってる
-
原宿cocos2d-xゲームアプリ塾(仮称)#0の説明資料
最終目標について このアプリ塾(改め、ゲームアプリ開発者同盟)では、真面目に収益を得ることを目的に
- PREV
- OpenGLとテクスチャの理解
- NEXT
- SimpleGameの機能追加