cocos2d基本とBOX2dの基本


cocos2d基本とBOX2dの基本を覚書程度に。ツッコミあるかもしれないですw。

cocos2dの基本
参考:http://gamedevelopment.seesaa.net/archives/201010-1.html

CCDirector 1つのゲームに1つ。CCDirectorクラスはシングルトンになっている。
|1
|
|*
CCSenes 1つのデレクターに対して複数のシーンが有り得る。画面遷移等で変わる。
|1
|
|*
CCLayrs 1つのシーンに対して複数のレイヤーが有り得る。キャラ、背景レイヤー等
|1
|
|*
CCSprites 1つのレイヤーに対して複数のスプライトが有り得る。キャラクタ、背景等

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

BOX2Dの基本
参考:http://blog.allanbishop.com/box2d-2-1a-tutorial-part-1/

b2World 世界。重力が決定されている。
|1
|
|*
b2Body 世界の中の何らかの部品。
|1
|
|1
b2FixtureDef 属性定義。密度、摩擦、反発等の定義。
|1
|
|1
b2PolygonShape 形の定義。

LevelHelperとSpriteHelperを動かして試してみた。(失敗例です。)


LevelHelperとSpriteHelperを動かして試してみた。(結果思うように動いてません!)

今回は失敗例です。同じ症状の方がいたら情報を共有し合いたいです。
cocos2d-xの記事はまだ少ないらしいので、失敗例も書いていくのが努めかなと。
※今回の記事は直接2dxの話ではないちゃーないですが・・・。

さて、LevelHelperとSpriteHelperを使うとどうやら、

SpriteHelper
・複数の素材を1つにまとめた画像を作成。
・それぞれの素材の座標を関連付けてくれる。
LevelHelper
・SpriteHelperで作成した素材をGUIベースで設置
・素材は名前をつけてコード上でも扱える。
・それらの情報をcocos2d-xのソースに変換できる。

ということらしい。それ以上に機能がありそうですが・・・自分は試せませんでした!

自分がやったことは以下。また、がおまるさんの記事をトレースしてやってます。

まずはLevelHerperとSpriteHelperをダウンロードしてインストール。
2200+1500円します。iTunesカード買って購入。しっかりがおまるさんのリン(ry

第1回:プロジェクトの作成
http://gaomar.blog.fc2.com/blog-entry-12.html
シュミレータのところは一度ダウンロードしてくる必要があるようです。
ダウンロードしてインストール。もう一度LevelHelperに戻ってシュミレーション実行、
どこにインストールしたシュミレーションソフトを指定してやると、シュミレーションが動きます!
なるほどなるほど。シュミレーションで配置できた!

第2回:cocos2d-xに組み込む
http://gaomar.blog.fc2.com/blog-entry-13.html
ここからが重要だなー。
「Supporting Code」タブをクリックして・・・・んん?エクセプションエラーだと・・・?
スクリーンショット 2013-02-12 21.14.27
なんぞこれー・・・・ぐぐっても同じ症状の方がいない。あれ?他のタブ開いても同じ症状でるぞ?!
いろいろやったけど、改善せず。うーん・・・。とりあえず、エクセプションエラーでたよと作者のHPへ投稿して置きました。
ちなみに、
・ネットの回線を切った状態でも同じエクセプションが発生します。
・MACを英語設定にしても発生します。
・もちろんHDDが足らないってことはないです。

自分の環境のせいで発生している可能性が高い気がします。iOS10.8にムリやりアップデートしたこのPCが・・・。
うーん。それ以上LevelHelper進めない・・・。とりあえず、2dxの方を進めていきます!
なにか情報があったらまた書きます。

cocos2d-xをインストールしていじってみた。その2


さて次のステップ。昨日動かしたcocos2d-xのテンプレートを動かするとiPhone3の解像度で動きます。

御存知の通り、iPhone3、iPhone4、iPhone5では解像度が違います。もちろんiPadも。

ちょっとiPhoneとiPadの解像度についておさらいを。

iOS対応機種の画素数とアスペクト比
機種名 画素数(縦x横) アスペクト比
iPhone3 480×320 3:2
iPhone4 960×640 3:2
iPhone5 1136×640 16:9
iPad1&2 1024×768 4:3
iPad3 2048×1536 4:3
iPad mini 1024×768 4:3

iOS対応機種全てに対応しようとすると、すべての解像度の画像を用意すると、5種類。
アスペクト比でまとめる事で3種類ということになりますかね。
なんか次に出るiPhoneの話がちらほら出てますが、あんまり種類増やしてほしくないですよねw。

で、どうやってこれらの解像度の違いに対応するかという点ですが、以下のURLで説明されています。

http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Mechanism_of_loading_resources

何々?解像度の違うそれぞれの種類にフォルダを分けて管理しろということか。
記事がちょっと古いから5のことは乗ってないけど、ここに5も追加すればOKですね。

1.1
CCFileUtils::setSearchResolutionsOrder()で対応する種別を追加できるぜって言ってますね。
その後は画像を指定するだけで勝手に探してくれるっぽい。
1.2
アンドロイドではこうは行かないぜと書いてますね。まだアンドロイドに手を出せないのでとりあえず、置きます。

んー、では、アスペクト比が違う種類の画像座標の計算はどうするんだろう?これはまだ書いてないですね。
思えば、この環境ってXIBやストーリーボードがないので、直感的なボタンの配置などがあんまり出来ないですよね。

などと思っていたら、何やらCocosBilderなる面白そうなものを発見。
http://d.hatena.ne.jp/shinriyo/20121014

っと思ったが、できない!!!と同じ症状!!調べてもなかなか出てこない!という事でとりあえず、コレも置く方向でw

ハマった時は周りを見渡すようにしてます。ということで、がおまるさんとかはどうしてるのかなーとがおまるさんブログをキョロキョロ。よく見てみたらLevelHelperっていう有料のツールを使っているっぽいです。

CocosBilderはゲーム前のタイトルとかには使えるぞ的な発言が見えたですが、LevelHelperの方はゲーム自体の部品配置も可能っぽいですね。がおまるさんのアプリがそれを証明している。さすがの有料。2200円かー。買うならまだ円安の影響の出ない今がチャンスか。(大した差じゃないかw)今日のところは以上で。

 

cocos2d-xをインストールしていじってみた。


cocos2d-xをインストールしていじってみた。

がおまるさんのブログを参考にcocos2d-xをインストールして見ました。
cocos2d-xとは、「ゲーム開発時のiOSとAndroid両方を共通のC言語のソースで扱うことができるもの」らしい。
今回の自分の目的は以下です。

  1. 既存のアプリ漫画パンチにゲーム要素を追加する。この時、cocos2d-xを利用できないかを検証。
  2. 新しいアプリの作成に、cocos2d-xを用いてアンドロイドの方にも手を出してみたい。
  3. 漫画パンチのアップデートに合わせて、新規アプリをリリース、双方の宣伝をつけ相乗効果でグイグイいきたい。
  4. 出来れば、漫画パンチもcocos2d-x化してみたい・・・。

1は出来たらいいなー。2と3に関しては是非実現したい。アンドロイド端末ないからとりあえず、iOSだけで行きます。
4はとりあえず、ステイ。
※ブログって自分のやりたいことをまとめられるからいいですね!

がおまるさんのブログをトレースして作業していくよ!がおまるさんに足を向けて寝れないよ!がおまるさんの超越カージャンプおもろいよ!
※初めていじる目線でわからないことがあったらちょいちょい書く方向で行きます。

●プロジェクトのインストール
cocos2d-xダウンロード(自分は最新版のcocos2d-2.1beta3-x-2.1.1.zipで)してsudoで管理者権限でインストール。
問題なく完了ぅ。

●Xcode起動
XcodeでFile-new-project。iOSの欄にcocos2d-xがあるぞー。さてテンプレートを選べと出てるが・・・。
どんなテンプレートがあるんだコレ?

  • cocos2dx       iOSをcocox2dx使って作る。
  • cocos2dx_box2d    iOSをcocos2dxとbox2dで作る。 box2dは物理エンジンらしい。
  • cocos2dx_chipmunk  iOSをcocos2dxとchipmunkで作る。 chipmunkは当たり判定機能とか持っているらしい。
  • cocos2dx_js     iOSをcocos2dxで作る。ジャバで作るってことかな?
  • cocos2dx_lua     iOSをcocos2dxで作る。Script言語Luaで作るということかな?

とりあえず、cocos2dx_box2dのテンプレでプロジェクト作成。
おおこんな感じ。

スクリーンショット 2013-02-06 23.05.04
押すたびに四角い積み木的オブジェクト(A~D)が出る。物理エンジンがちゃんと動いていて、下に落ちて積み木に積み木をぶつけると重ならずに下に転がる。積み重なることもある。ほほー。

プロジェクトの23個のwarningはちょっと気になるけど、とりあえずほっとく。

スクリーンショット 2013-02-06 23.20.36

次にcocos2dxテンプレートも試しておく。こちらは画像が表示されるだけっぽい。

他にも色々いじりましたが、目的の1の項目は果たしてかなうのかな・・・?ちょと難しそうだからとりあえず、2と3を進めていきまーす。ある程度慣れた後、いけるかどうか再検証の方向で。

参考:がおまるさんのHP(http://gaomar.blog.fc2.com/blog-entry-2.html)