Learn iPhone, iOS, Objective-c, Swift, cocos2dx, Unity and ….?

iOSやAndroid開発でのエラー解決法や便利tipsのメモ

RSS Feed

Box2D – 特定のオブジェクトを衝突させないようにする(Collision filtering)-

0 Comments
Posted by Kuro on 2013/01/23

スポンサードリンク

Box2Dには衝突をフィルタリングする機能があります。

例えば
味方同士はぶつからない
敵同士はぶつからない
味方と敵はぶつかる
といったようなことが可能です。

(参考サイトhttp://www.aurelienribon.com/blog/2011/07/box2d-tutorial-collision-filtering/

オブジェクトをグループ分けし、それぞれが衝突(collision)するかどうかを設定できます。

ただ、グループ(category)分けに使える数値は2の累乗のみで、それを16進数で表さなくてはならなかったり、衝突するかどうかを論理積で区別するなど、仕組みはやや複雑です。

(参考サイトhttp://www.matzmtok.com/blog/?p=53

私が必要としている機能は、あるオブジェクトを生成から一定期間だけ他のオブジェクトと衝突させないようにするというだけなので、上記の面倒な仕組みは使わずに実装できました。

“maskBits=0x0000;”の値はcategoryに関わらずすべてのオブジェクトと衝突しないという特別な値です。

生成時に0x0000をセットし、適当なところで0×0001をセットすればその後は衝突するようになります。

生成時 – 衝突不可に設定

衝突可能オブジェクトに変更

スポンサードリンク


Filed under Box2D, Programming
Tagged as ,
You can leave a comment, or trackback from your own site.

0 Comments

You can be the first to comment!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

Popular Posts