специфическая форма тела в cocos2d - PullRequest
0 голосов
/ 05 сентября 2011

У меня есть спрайты (у которых есть тела), которые могут упасть в ящик в мире b2.

Интересно, как мне определить это тело коробки, поэтому, только когда другое тело ударило его сверху вниз, похоже, что он вошел в эту коробку, а я его больше не вижу ...

я должен просто поместить его в другой слой z? как я могу определить тело, которое будет открыто только в верхней части?

Я создал тело так:

-(void)basket //TAG5
{
    //define sprite
    basket=[CCSprite spriteWithFile:@"basket.png"];
    basket.tag=5;
    basket.position=ccp(200,50);
    b2BodyDef spriteBodyDef;
    spriteBodyDef.type = b2_staticBody;
    spriteBodyDef.position.Set(basket.position.x/PTM_RATIO,basket.position.y/PTM_RATIO);
    spriteBodyDef.userData = basket;
    basket1Body = world->CreateBody(&spriteBodyDef);

    b2PolygonShape spriteShape; //b2polygon-for box shape
    spriteShape.SetAsBox(basket.contentSize.width/PTM_RATIO/2,basket.contentSize.height/PTM_RATIO/2); //for b2polygon
    b2FixtureDef spriteShapeDef;
    spriteShapeDef.shape = &spriteShape;
    spriteShapeDef.density = 10.0;
    spriteShapeDef.isSensor = false;
    stand1Body->CreateFixture(&spriteShapeDef);
    [self addChild:basket]; 
}

Я использую cocos2d и box2d. Любое объяснение простого способа сделать это будет оценено.

1 Ответ

1 голос
/ 07 сентября 2011

Чтобы сделать коробку, вы можете использовать три многоугольника (левая и правая стены и нижняя часть) или ребра.Тогда да, просто нарисуйте что-нибудь поверх, чтобы объекты были скрыты, когда они попадают в эту область.

...