0

物理エディタの形状定義を使用して、数値の形状を動的に作成しようとしています。0 ~ 9 の各桁に個別の形状定義があります。

乱数 (42 など) を使用して CCLabelBMFont を作成し、そのラベルに 1 つの本文を追加します。次に、ラベルの各子スプライトをループし、その数字に対応する形状定義を追加します。各桁の形状定義が追加されますが、本体の中央に配置されます (つまり、互いの上に積み重ねられます)。そのボディ内の形状 (ポリゴン形状) を再配置することは何とか可能ですか?

フィクスチャの作成中に m_centroid を再設定することで、各形状の位置をオフセットしようとしましたが、うまくいきませんでした (「GB2ShapeCache.m」内)。

-(void) addFixturesToBody:(b2Body*)body forShapeName:(NSString*)shape withXOffset:(float32)xOff{
  BodyDef *so = [shapeObjects_ objectForKey:shape];
  assert(so);

  FixtureDef *fix = so->fixtures;
  while(fix)
  {
    [...]
    b2PolygonShape* polygon = (b2PolygonShape*) fix->fixture.shape;
    polygon->m_centroid.Set(polygon->m_centroid.x + xOff, polygon->m_centroid.y);
}
4

0 に答える 0