ViVi Home > 技術文書 > cocos2d-x > cocos2d-x 2.x メモ


 
Follow @vivisuke Tweet

 

cocos2d-x 2.x メモ
Copyright (C) 2013 by Nobuhide Tsuda

概要

セットアップ

DL&解凍

Windows

ビルド

新規プロジェクトを作成出来るようにしよう

iOS

Android

サンプルソースをいじってみる

結構詳細なリファレンスが公開されているのだが、 順番に読んで行くのは根気と忍耐と時間がいる。
まずはサンプルソース(HelloCpp)をいろいろいじってみるのが楽しいし、マスターへの早道だ。

上図は HelloCpp プロジェクトのソースツリー。Classes と win32 に分かれている。 前者はプラットフォームに依存しない部分、後者は win32 固有の記述のようだ。
ひとつ上のディレクトリを見ると、proj,android, proj.ios などがあり、そこに固有のソースが存在する。
Classes も proj.win32 などと同じ階層に存在する。

ラベル表示をいじってみる

Classes ディレクトリ下で "Hello World" を grep すれば、メッセージを表示している部分はすぐにみつかる。
下リストの59行目だ。

21: // on "init" you need to initialize your instance
22: bool HelloWorld::init()
23: {
    .....
53:     /////////////////////////////
54:     // 3. add your codes below...
55: 
56:     // add a label shows "Hello World"
57:     // create and initialize a label
58:     
59:     CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", TITLE_FONT_SIZE);
60:     
61:     // position the label on the center of the screen
62:     pLabel->setPosition(ccp(origin.x + visibleSize.width/2,
63:                             origin.y + visibleSize.height - pLabel->getContentSize().height));
64: 
65:     // add the label as a child to this layer
66:     this->addChild(pLabel, 1);
67: 
68:     // add "HelloWorld" splash screen"
69:     CCSprite* pSprite = CCSprite::create("HelloWorld.png");
70: 
71:     // position the sprite on the center of the screen
72:     pSprite->setPosition(ccp(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
73: 
74:     // add the sprite as a child to this layer
75:     this->addChild(pSprite, 0);
76:     
77:     return true;
78: }

ソースを読めば、やっていることが直ぐにわかる。

テキストは CCLabelTTF クラスオブジェクトで、59行目で文字列、ファミリー。サイズを指定してラベルオブジェクトを生成し、
63行目で画面サイズ、ラベルオブジェクトサイズを参照して位置を決め、
66行目でレイヤーに配置している。

画像を表示してみる

ボタン押下ハンドラを実装してみる

シーンを遷移(transition)させてみる

描画モデル

cocos2d-x は画面に関しては以下の階層構造を持つ