Cocos2d-xでiPhone&Androidアプリ開発記3 初心者TIPS

top

今回で3回目のCocos2d-x連載。自作アプリを製作中ですが7割ほど完成してきました。最初は右も左も分かりませんでしたが、ようやくコツが掴めてきた感じ。分からない時は基本ネットで検索すれば答えが見つかりました。やはり誰もが同じ疑問や問題に直面するのでしょう。

作成するアプリやゲームの種類によって習得までの道のりも変わってくるとは思いますが、基礎的な部分のTIPSをまとめてみました。Cocos2d-xのバージョンは2.2.2です。

 

cocos2d-xで縦画面にする

cocos2d-xで縦画面にする - おかひろの雑記

個人的に横向きのアプリって使いにくいと感じてて、今後もずっとポートレイトでアプリ開発する予定。ちなみにCocos2d-xは横向きデフォです。ゲームのニーズはランドスケープなのかな。

 

cocos2d-xのCCStringの使い方

cocos2d-xのCCStringの使い方(iOS, Android) | チラ裏開発メモ

C++で開発してるので、std::stringでもいいんですが、

CCArray* test = CCArray::create(ccs("test1"),ccs("test2"),ccs("test3"),NULL);
CCString* time = CCString::createWithFormat("%02d:%02d",min,sec);

こーいうとき楽できます。

 

xcodeでバックスラッシュ

Symantec@OKWave - xcodeで改行が。。

tsvファイル解析でタブ文字や改行コードが認識されなくて。今までこの問題に遭遇せずやってこれたのが意外だった。テキスト操作するなら必須ですね。

 

CCLayerとCCSpriteの違い

cocos2dの基礎 CCLayerとCCSpriteの違い - レイヤーをスプライトのように使うには -. | thaty

個人的にとても参考になったページ。cocos2d-xは基本的に何でも画像で表示するので、ただの四角とかできないのかと。CCDrawNodeがあるけどコスト高そうで。

CCSpriteで白ベタ画像用意すればsetColorの色が反映されるので幅が広がった。

 

スプラッシュ画面を非表示にすると問題発生

ios - Can't get rid of splash screen in Xcode - Stack Overflow

getFrameSize() get wrong screen size. | Cocos2d-x

デバッグで毎回表示されるのが嫌だったのでスプラッシュ画像を削除したんですが反映されず。 Xcodeのクリーンだけではダメで、iPhoneシミュ側でもクリーンが必要でしたという話。

それで問題なく開発進めてましたが、

CCEGLView::sharedOpenGLView()->getFrameSize();

で、4inchでも640×1136ではなく640×960が戻ってくる。解像度判定にスプラッシュ画像を利用しているようです。事実上スプラッシュ画像必須ですね。

 

CCLabelTTFのフォント名はファイル名ではない。プロジェクトに登録も必要。

【cocos2d】プロジェクトに「新しいフォント」を追加する方法 | albatrus.com

フォント名はttfファイルをダブルクリックすればOS付属のビューアで確認できます。単純にリソースにコピーするだけでなく『TARGETS > Info > Custom iOS Target Properties > Fonts Provided by application』に登録が必要。

albatrus.comさんには何度もお世話になってます。

 

ScrollViewの動きをiOSのUIScrollViewっぽくする

(cocos2d-x)ScrollView(CCScrollView)の動きをiOSのUIScrollViewっぽくする | pMemo & 適当に

CCScrollView標準だと末端に達した時の動き幅が大きすぎる感があるので少し改造。ライブラリのCCScrollView.cpp内をいじりますが思ったより読みやすいソースでした。

 

パーティクルの設定

cocos2dのパーティクルの設定まとめ | Nomadarian

パーティクルは設定項目が多いので参考になります。項目は多いものの、パーティクル自体の利用はとても簡単で驚きです。効果的に使っていきたい。

 

Allocating an object of abstract class type ‘HelloScene’

最低限の実装だけしたテーブルビューを作ってみる(CCTableView, CCTableViewDataSource, CCTableViewDelegate)|めっとぼ

デリゲートしたら純粋仮想関数をちゃんと定義しないとエラーでます。

 

 

広告