【cocos2dで当たり判定】アプリ開発日記(10/28)


今日のテーマ
【cocos2dで当たり判定】

その昔「鉄壁のコタロー」っていうのゲームのときは
この当たり判定結構適当に作っていて
「コタローがいるライン(高さ)にボールがはいったこと」と
「コタローが特定のX座標にいることで」当たり判定を出してました。
ただしこれは、下からしか玉が飛んでこないとが大前提となるので
今作っているゲームでは、横からの対象にぶつかることが発生します。

この主人公と敵が当たったら何らかしら処理を走らせる部分を
今回は実装していくところで、四苦八苦。



主人公のサイズ、主人公の位置情報をもとに
すべて計算で出してたのですが、、、なんかめんどくさいなと3分で挫折w
そこでとてもすばらしいサイト様を見つけました。

cocos2dやIPhone/iPadのゲームで「当たり判定」を実装する方法。

上記サイトには、当たり判定に必要なものが二つ書かれてますが
今回私に必要なのは、”CGRectIntersectsRect()”!
こちらを使用して、主人公と敵のCGRectを取り出して
ifでの判定に使えばOKかと思われます。

こんな感じで実装

追伸
※今回の記事の主旨からはずれます

しかもこれクラスで最初から取り出せるように実装できたんじゃないか?
と最近クラスの勉強をしていると思う。

想像ですが、
自分自身(主人公)のクラスを作る際に、CCSpriteを継承(多分こんな感じ)するようにして
Rectを返すような仕組み(メソッド?関数?)をつくっておけば
今書いている、プログラムのように長たらしくならなくていいんじゃないか?

しかも敵キャラも別クラスで作成するけど
この部分はコピーで実装できる。。。のかなぁ
画像系のクラスを作成する場合は共通で作っておけるのでは?

今度検証してみよう。