*

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箇所に貼っています。

関連記事

no image

企画とプログラマー、デザイナー以外の仕事について

こんばんわmk18です。 プログラミングの勉強と平行して企画の勉強もして行きましょう。 理想のチ

記事を読む

no image

SampleGameソースコードの説明

こんばんわmk18です。 今回よりcocos2d-xの内容に入って行きます。 SimpleGam

記事を読む

no image

SimpleGameの機能追加

こんばんわmk18です。 前回のまでの内容は終わったでしょうか? ここで一旦、アウトプットをしま

記事を読む

no image

CCSpriteとTexture Packer について

こんばんわmk18です。 課題の方は進んでいますでしょうか? 今回はスプライトの貼り方です。

記事を読む

no image

CとC++の勉強方法について

こんばんわmk18です。 先日はお疲れ様でした。 11名の集まるとはびっくりです。

記事を読む

no image

勉強会を再開します

こんにちはmk18です。 9月中旬から常駐請負を辞めて、自分のアプリに専念しています。

記事を読む

no image

cocos2-xの環境構築とサンプルの実行

こんばんわmk18です。 今回は、cocos2d-xの環境構築をします。 Android

記事を読む

no image

OpenGLとテクスチャの理解

こんばんわmk18です。 cocos2d-xはOpenGLという技術を使って描画しています。 c

記事を読む

no image

cocos2-xの座標と画像ファイル

こんばんわmk18です。 今回は、実際のゲーム画面に近い物をつくります。 座標はいま私が作ってる

記事を読む

no image

原宿cocos2d-xゲームアプリ塾(仮称)#0の説明資料

最終目標について このアプリ塾(改め、ゲームアプリ開発者同盟)では、真面目に収益を得ることを目的に

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

no image
勉強会を再開します

こんにちはmk18です。 9月中旬から常駐請負を辞めて、自分のア

no image
CCSpriteとTexture Packer について

こんばんわmk18です。 課題の方は進んでいますでしょうか? 今回

no image
企画とプログラマー、デザイナー以外の仕事について

こんばんわmk18です。 プログラミングの勉強と平行して企画の勉強も

no image
cocos2-xの座標と画像ファイル

こんばんわmk18です。 今回は、実際のゲーム画面に近い物をつくりま

no image
SimpleGameの機能追加

こんばんわmk18です。 前回のまでの内容は終わったでしょうか?

→もっと見る

PAGE TOP ↑