2011-09-05 4 views
0

나는 b2world에서 상자로 떨어질 수있는 스프라이트 (몸체를 가짐)를 가지고있다.cocos2d에서 spesific body shape

단지 내가해야 ... 내가 어떤 방법으로 궁금

내가 다른 몸이 거꾸로에서를 쳤을 때 그가 그 상자 안에 갔다처럼 그렇게 만 보이는 그 박스 바디를 정의해야하고, 나는 더 이상 그것을보고 해달라고 다른 z 레이어에 넣으시겠습니까? 몸체가 위쪽에서만 열리도록 정의 할 수 있습니까?

이 같은 몸을 만든 : 내가적인 Cocos2D와 Box2D의를 사용하고

-(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]; 


} 

. 이 작업을 수행하는 간단한 방법에 대한 설명은 감사하겠습니다. 감사합니다.

답변

1

상자를 만들려면 3 개의 다각형 (왼쪽 및 오른쪽 벽과 바닥) 또는 가장자리 모양을 사용할 수 있습니다. 그렇다면 네, 그 위에 들어갈 때 그 물건이 숨겨 지도록 꼭대기에 무언가를 그립니다.

+0

감사합니다. 나는 다른 방법이 있는데 그게 더 좋은지 잘 모릅니다. 나는 상자의 테두리 모양에 다른 스프라이트에 따라 몸체를 정의하려고 생각하고있다. 그래서 상자 몸체는 상자 이미지에 따라 움직이지 않을 것이지만 보이지 않는 다른 이미지에 따르면 내가 원하는 spesific 모양. 그게 정확한 길이야? – Curnelious