cocos2dx:衝突判定を実装する1回目

cocos2dx:衝突判定を実装する1回目
   

cocos2dxで衝突判定を実装するシリーズとしてこれから3回に分けてブログに書いていきたいと思います。
この辺りは、自分でもこの一ヶ月近く色々試している部分なんですが、何とか形になる部分が自分の中にありますので、それを紹介したいと思います。
ちなみに、タイルマップを利用した衝突判定を書きますので、もし参考にできるものがあれば幸いです。

第一回目は、cocos2dxで衝突判定をするために必要なメソッドなどの紹介をします。


CCPoint

オブジェクトの座標はCCPointクラスで表現されています。
CCPointは下記の方法で作成ができます。


このCCPointは、デバイスのx座標とy座標で表現されています。

例えばCCSpriteクラスでオブジェクトを作成した時には、setPosition()メソッドを利用して座標を決めます。



デフォルトですと、画像の中心がそれに当たります。
また、アンカーポイントを変更すれば、この位置を修正できます。

Ccpoint


CCRect

CCRectでは、オブジェクトの画像の領域を表せます。
CCRectは以下の方法で作成できます。

CCRectMakeでそれぞれの値を指定して上げる方法と、スプライトの画像のCCRectを取り出すboundingBox()を利用します。
既に画像がある場合は、boundingBoxを使うと簡単に導き出せます。

Ccrect


衝突判定で使える2つの方法

上記で説明したCCPointをCCRectを使って、衝突判定を行います。

CCPointとCCRectを使った衝突判定

CCRectクラスにある【containsPoint】を利用すれば、指定されたCCPointがCCRectの領域内に触れた時にtrueを返します。
これを利用すれば、CCRectの領域内に、指定されたCCPointが入った時の判定ができます。


Point2


CCRectとCCRectを使った衝突判定

CCRectとCCRectの領域が重なった時にtrueを返す【intersectsRect】メソッドを利用します。
利用方法は以下の様な感じです。


Rect2



最後に

今回は、cocos2dxの基本的なことを書きました。
次回はタイルマップのレイアーとの衝突判定について書いていきたいと思います。

Cocos2d‐x開発のレシピ―iOS/Android対応Cocos2d‐x開発のレシピ―iOS/Android対応
松浦 晃洋,齊藤 建二,古木 映治

秀和システム
売り上げランキング : 1224

Amazonで詳しく見る

Related Posts Plugin for WordPress, Blogger...