简体   繁体   English

如何在Box2d中制作歪斜图像(b2body)?

[英]How to make askew slope image(b2body) in Box2d?

I am new in Box2d and learning myself. 我是Box2d的新手,正在学习。 I am learning Box2d from here 我正在从这里学习Box2d

I want to make a body and want to give b2body a angle so that it will look like body is stand like skew line, like slope. 我要制作一个主体,并要给b2body一个角度,使它看起来像主体像倾斜线一样倾斜。

This is my code. 这是我的代码。

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);            
}

In this code I made 4 b2body horizontically. 在这段代码中,我水平地制作了4个b2body。 Now I want these in vertical and slightly skew, like a slope. 现在,我希望它们垂直且略微倾斜,例如倾斜。

I am not able to do this yet. 我还不能做到这一点。

I dont know I have to give angel to the body or something else. 我不知道我必须让天使身体或其他东西。 Not able to find sample code and good tutorials of Box2d. 找不到Box2d的示例代码和良好的教程。

Is there any site available where I can find some xcode Box2d demo for beginners? 有没有可用的网站可以在其中找到初学者的xcode Box2d演示? Or some code like applications we have UIButtons, UILabel, UITextfiled programatically, can I find Box2d codes like this? 还是一些像应用程序这样的代码,我们以编程方式拥有UIButtons,UILabel,UITextfiled,我可以找到像这样的Box2d代码吗?

In this demo I am trying to make 4 static slope image and from the left upper side corner I have to push ball(b2dynamicbody). 在此演示中,我尝试制作4个静态坡度图像,并且必须从左上角推动球(b2dynamicbody)。 The ball will go through these 4 static body and the ball will turn according to the slope. 球将通过这四个静态物体,并且球将根据坡度旋转。

Any Idea or suggestions would be highly welcome. 任何想法或建议都将受到欢迎。

Replace this code in your sample and get a sloppy body 将此代码替换为示例,并得到一个草率的主体

// 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);

Good luck, feel free to ask your queries. 祝您好运,随时提出您的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM