Iphone 倾斜或倾斜时如何碰撞固定装置?
我想碰撞vall和block,但在我命令两行代码时无法碰撞ball和block,但如果我取消注释两行代码,则块将显示水平而不是倾斜或类似坡度 请检查我的coe:Iphone 倾斜或倾斜时如何碰撞固定装置?,iphone,objective-c,cocoa-touch,cocos2d-iphone,box2d,Iphone,Objective C,Cocoa Touch,Cocos2d Iphone,Box2d,我想碰撞vall和block,但在我命令两行代码时无法碰撞ball和block,但如果我取消注释两行代码,则块将显示水平而不是倾斜或类似坡度 请检查我的coe: for(int i = 0; i < 4; i++) { static int padding=20; self.touchEnabled = YES; // Create block and add it to the layer CCSprit
for(int i = 0; i < 4; i++) {
static int padding=20;
self.touchEnabled = YES;
// Create block and add it to the layer
CCSprite *block = [CCSprite spriteWithFile:@"block.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_dynamicBody; //b2_dynamicBody ,b2_staticBody
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);
////////////////////////////// If I comment the these lines and uncomment above two line the block will show horizontally and ball can hit the block. But I want this code to show my block slope like. This is must. I want block will show slope and ball can hit the block.
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(187.0f / PTM_RATIO, 288.4f / PTM_RATIO),
b2Vec2(400.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;
blockBodyDef.angle = 45/PTM_RATIO;
//blockShapeDef.angle = angle * 4.1;
//blockShapeDef->angle = angle * 0.0174533f;
//blockBody->SetTransform(b2Vec2(2, 45));
//blockBodyDef->angle = Math.PI / 180 * 30;//30°
//float32 angle2 = blockBody->GetAngle();
blockBody->CreateFixture(&blockShapeDef);
}