cocos2d中的特定体形

时间:2011-09-05 10:54:40

标签: cocos2d-iphone box2d

我有精灵(有身体)可以倒入一个盒子里,在b2world中。

我想知道我应该以什么方式定义那个盒子的身体,所以只有当另一个身体从上面击中它时,看起来他才进入那个盒子里,我再也看不到它了..

我应该把它放在另一个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 个答案:

答案 0 :(得分:1)

要制作盒子,您可以使用三个多边形(左右墙壁和底部)或边缘形状。然后是的,只需在顶部绘制一些东西,以便当它们进入该区域时隐藏对象。