2011-10-26 3 views
0

私はのBox2dのゲームで、b2PolygonShapeの衝突に主人公を持っています。プレイヤーがぶつかるとき、私は体をより小さくb2PolygonShapeに変更しています。ロジックはうまくいきますが、衝突のサイズ(高さ)を変更するとキャラクタが落ち込み始めます。実行時にプレーヤーの衝突(b2PolygonShape)を変更し、ボディの位置を維持します。

ボディの位置が同じになるようにオフセット(localPosition?)で新しいボディを作成できますか?このようにして、私はカウチアニメーションをプレイし、位置が変わり、スプライトがバナナになることを心配することなく衝突を変更することができます。

enter image description here

答えて

1

私がBOX2Dを使用していたので、長い時間がかかったが、私はあなたのためのソリューションを持っていると信じています。

b2PolygonDef.SetAsOrientedBoxを使用して別のb2PoligonDefを作成することができます(これは、ボックスの中心を設定することができます)。

シェービングボックスの定義をshapeDef.SetAsBox(1.0、1.0)として使用していた場合は、shapeDef.SetAsOrientedBox(1、1、new b2Vec2(0、-1) )。

別のオプションは、自分で頂点を宣言するだろうので、あなたは何と何かのように:

shapeDef.vertexCount = 4; 
shapeDef.vertices[0].Set(-0.5, 0); 
shapeDef.vertices[1].Set(0.5, 0); 
shapeDef.vertices[2].Set(0.5, 1); 
shapeDef.vertices[3].Set(-0.5, 1); 
関連する問題