我正在尝试使用物理编辑器中的形状定义动态创建数字的形状。我对 0-9 的每个数字都有单独的形状定义。
我创建了一个带有随机数(例如 42)的 CCLabelBMFont 并为该标签添加了一个主体。然后我遍历标签的每个子精灵并为该数字添加相应的形状定义。添加每个数字的形状定义,但在身体内部居中(即彼此堆叠)。是否可以以某种方式重新定位该体内的形状(多边形形状)?
我试图通过在没有运气的夹具创建过程中重新设置 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);
}