[英]How to make askew slope image(b2body) in Box2d?
我是Box2d的新手,正在學習。 我正在從這里學習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)。 球將通過這四個靜態物體,並且球將根據坡度旋轉。
任何想法或建議都將受到歡迎。
將此代碼替換為示例,並得到一個草率的主體
// 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);
祝您好運,隨時提出您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.