2011-09-05 44 views
0

我有精靈(有屍體),可以落入一個盒子,在b2world。cocos2d特有的身體形狀

我以什麼方式不知道應該怎麼定義箱體,所以只有當另一個身體上攻打它,它看起來像他那個盒子裏面去了,我沒有看到它了..

我應該只是把它放在另一個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

謝謝,我有另一種方式,我不知道它是否更好。我正在考慮根據另一個精靈來定義一個身體,也就是那個盒子邊框的形狀,所以現在盒子的身體不會根據那個盒子的圖像去,而是根據另一個看不見的圖像,並且在我需要特別的形狀。這是正確的方式嗎? – Curnelious