cocos2dx
cocos コマンド
0Cocos2d-x ver.3 で cocos コマンドという便利なコマンドラインツールが追加されました。実際に使用してみたので、備忘録兼ねてまとめておきます。
最近公式サイトのドキュメントがかなり充実してきていますので、英語が苦ではない方は公式ドキュメントを参考にするとよいかと思います。
How To Start A New Game
Cocos2d-x ver.3 をインストールしたディレクトリを ~/cocos2d-x/ として進めていきます。
(続きを読む…)
ABC 2014 で LT してきました
13/12 に秋葉原で開催された Android Bazaar and Conference 2014 Spring (通称 ABC)で LT してきましたので、その報告です。
発表資料
デブサミ2014で Cocos2d-x に関して話をしました
1デブサミ2014 で Cocos2d-x の開発に関してお話をさせていただく機会を頂きました。
タイトルは「Cocos2d-x によるスマートフォンアプリ開発のこれまでとこれから」で、私自身が Cocos2d-x で開発してきたこれまでの2年間のお話と Cocos2d-x のこれからのお話をさせていただきました。
(続きを読む…)
既存の Cocos2d-x プロジェクトを iOS7 対応させる方法
1iOS7 がリリースされたので、iOS7 対応に関して書こうと思います。
Cocos2d-x ver.2.1.5 で iOS7 対応されたようですが、ver.2.1.5 未満で作成された既存の Cocos2d-x のプロジェクトを iOS7 対応する方法です。素直に Cocos2d-x のバージョンを上げればいいのですが、Cocos2d-x の本体の方を色々といじっている場合などは、なかなか面倒なところです。また、ver.1.x のプロジェクトなどもメジャーバージョンアップさせるのは結構厳しいところです。かと言ってメンテナンスはあるのでここでは必要最低限の対応方法で Xcode5 に対応させたいと思います。
(続きを読む…)
「Cocos2d-x 開発のレシピ」のサポート用 Facebook ページ
1Facebook などでも少しづつご質問を頂くようになったので、サポート用 Facebook ページを作成しました。ご質問などは下記ページからして頂ければ執筆陣一同、取りこぼしなく回答させて頂きます。感想なども大歓迎です。
[Cocos2d-x] CCLayerGradient クラスを使用してグラデーションを描画する
0CCLayerColor クラスを使用するとレイヤの背景に色を付けることができますが、CCLayerGradient クラスを使用するとレイヤにグラデーション付けることができます。
CCLayerGradient::create メソッドの引数にグラデーションの開始色、終了色、グラデーションの方向を指定します。最後のグラデーションの方向はアンカーポイントの指定と同じように、左下が (0, 0) 、右上が (1, 1) になります。
ccColor4B yellow = ccc4(255, 255, 0, 255); ccColor4B black = ccc4(0, 0, 0, 255); CCLayerGradient* layer = CCLayerGradient::create(yellow, black, ccp(1.0f, 1.0f)); this->addChild(layer);
(続きを読む…)
[Cocos2d-x] CCDrawNode クラスを使用して線、図形を描画する
12013.5.25 追記
CCDrawNode を Android で使用する場合、「色が正しく表示されない」「透過ができない」という問題があります。これを解消するには CCDrawNode::render メソッドの下記行の GL_FALSE を GL_TRUE に修正してください。
glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_FALSE, sizeof(ccV2F_C4B_T2F), (GLvoid *)offsetof(ccV2F_C4B_T2F, colors));
参考 URL
CCDrawnode not respecting alpha?
CCDrawNode クラスを使用して線や図形を描画する方法です。レイヤに追加した CCDrawNode のインスタンスに draw 系のメソッドを使用して簡単に線や図形を描画することができます。
—– 追記ここまで —–
まず、CCDrawNode をレイヤに追加します。
CCSize size = CCDirector::sharedDirector()->getWinSize(); CCDrawNode* node = CCDrawNode::create(); node->setPosition(ccp(size.width/2, size.height/2)); this->addChild(node);
[cocos2d-x] CCCamera を使用してスターウォーズのオープニングシーンを再現
3CCCamera というクラスは全ての CCNode がプロパティとして保持しているクラスです。CCCamera はそのノードをどの地点から見ているかを指定することができます。もう少し詳しく書くと OpenGL の gluLookAt 関数でカメラの位置を定めるのに使用されます。CCNode にそれぞれ指定できますので、シーンやレイヤ、スプライト毎にカメラ位置を指定可能です。
例えば HellowWorld の画像のカメラ位置を下記のように指定します。
float x=0, y=0, z=0; this->getCamera()->getCenterXYZ(&x, &y, &z); this->getCamera()->setCenterXYZ(x, y+0.0000003, z);
これは下記の画像のように表示されます。
(続きを読む…)
[Cocos2d-x] モーダルレイヤを作成する
1アラートなどを表示するときにモーダルレイヤを出すことはよくあると思います。このモーダルレイヤを出す時に苦労するのがモーダルレイヤの下にあるボタンなどを押せなくする必要があることです。
例えば、HelloWorld のサンプルアプリは右下にあるボタンを押すとアプリが終了します。
(続きを読む…)