我是Box2d的新手并且自学。 我正在从here
学习Box2d我想制作一个身体,并希望给b2body一个角度,使它看起来像歪斜的身体像斜坡一样。
这是我的代码。
for(int i = 0; i < 4; i++) {
static int padding=20;
// Create block and add it to the layer
CCSprite *block = [CCSprite spriteWithFile:@"slope.png"];
int xOffset = padding+block.contentSize.width/2+ ((block.contentSize.width+padding)*i);
block.position = ccp(xOffset, 250);
block.tag = 2;
[self addChild:block];
// Create block body
b2BodyDef blockBodyDef;
blockBodyDef.type = b2_staticBody; //b2_dynamicBody
blockBodyDef.position.Set(xOffset/PTM_RATIO, 250/PTM_RATIO);
blockBodyDef.userData = block;
b2Body *blockBody = _world->CreateBody(&blockBodyDef);
// Create block shape
b2PolygonShape blockShape;
blockShape.SetAsBox(block.contentSize.width/PTM_RATIO/2,
block.contentSize.height/PTM_RATIO/2);
// Create shape definition and add to body
b2FixtureDef blockShapeDef;
blockShapeDef.shape = &blockShape;
blockShapeDef.density = 10.0;
blockShapeDef.friction = 0.0;
blockShapeDef.restitution = 0.1f;
blockBody->CreateFixture(&blockShapeDef);
}
在这段代码中,我用水平方式制作了4个b2body。现在我希望它们在垂直方向上略微倾斜,就像斜坡一样。
我还不能这样做。
我不知道我必须将天使交给身体或其他东西。无法找到Box2d的示例代码和优秀教程。
有没有可用的网站,我可以为初学者找到一些xcode Box2d演示? 或者一些代码,比如我们以编程方式使用UIButtons,UILabel,UITextfiled的应用程序,我可以找到像这样的Box2d代码吗?
在这个演示中,我试图制作4个静态斜率图像,并且从左上角我必须推球(b2dynamicbody)。球将通过这4个静止的球体,球将根据斜率转动。
非常欢迎任何想法或建议。
答案 0 :(得分:0)
在样本中替换此代码并获得一个草率的身体
// Create block body
b2BodyDef blockBodyDef;
blockBodyDef.type = b2_staticBody; //b2_dynamicBody
blockBodyDef.position.Set(200/PTM_RATIO, 250/PTM_RATIO);
blockBodyDef.userData = block;
b2Body *blockBody = _world->CreateBody(&blockBodyDef);
// Create block shape
b2PolygonShape blockShape;
int num = 3;
b2Vec2 verts[] = {
b2Vec2(-27.5f / PTM_RATIO, -296.6f / PTM_RATIO),
b2Vec2(-14.3f / PTM_RATIO, -127.2f / PTM_RATIO),
b2Vec2(-281.0f / PTM_RATIO, -288.4f / PTM_RATIO)
};
blockShape.Set(verts, num);
// Create shape definition and add to body
b2FixtureDef blockShapeDef;
blockShapeDef.shape = &blockShape;
blockShapeDef.density = 10.0;
blockShapeDef.friction = 0.0;
blockShapeDef.restitution = 0.1f;
blockBody->CreateFixture(&blockShapeDef);
祝你好运,随时询问你的问题。