2013-05-08 1 views
0

여기 box2d에서 작은 게임을 만들고 있습니다. 그 안에는 자동으로 리프트처럼 위아래로 움직이는 몸매가 필요합니다. 나는 터치 할 때이 코드 본문을 사용하여이 코드를 시도했다.리프트와 같은 movebox2d 바디 생성 방법 (몸체가 위 아래로 자동으로 움직일 수 있음)

http://www.box2d.org/manual.html

각형 공동이 좋은 수 있습니다하지만 난 480

enter code here 

//Set up a 1m squared box in the physics world 
    b2BodyDef bodyDef; 
    bodyDef.type = b2_dynamicBody; 

    bodyDef.position.Set(p.x/PTM_RATIO, p.y/PTM_RATIO); 
    bodyDef.userData = sprite; 
    b2Body *body = world->CreateBody(&bodyDef); 

    // Define another box shape for our dynamic body. 
    b2PolygonShape dynamicBox; 
    dynamicBox.SetAsBox(.5f, .5f);//These are mid points for our 1m box 

    // Define the dynamic body fixture. 
    b2FixtureDef fixtureDef; 
    fixtureDef.shape = &dynamicBox; 
    fixtureDef.density = 1.0f; 
    fixtureDef.friction = 0.3f; 
    body->CreateFixture(&fixtureDef); 
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    //Add a new body/atlas sprite at the touched location 
    for(UITouch *touch in touches) { 
     CGPoint location = [touch locationInView: [touch view]]; 

     location = [[CCDirector sharedDirector] convertToGL: location]; 

     //[self addNewSpriteWithCoords: location]; 
     b2Vec2 force = b2Vec2(0, 20); 
     _body->ApplyLinearImpulse(force, _body->GetPosition()); 
    } 
} 

답변

0

0에 여기에 관절 부분을 참조하십시오 반대로 다시 480 y 위치 0으로 이동합니다. 또한 리프트/엘리베이터가되어야하지만 실제로 달성하고자하는 바에 달려 있다면 이것을위한 운동기구를 고려할 수도 있습니다. 본문 섹션의 운동 학적 및 동적 (그리고 정적) 바디의 차이점을 확실히 확인하십시오.