저는 cocos2dX 게임을 개발 중입니다. 나는 물리 시뮬레이션을 위해 box2d를 사용한다. 저는 원형 몸체와 직사각형 몸체를 추가하려고합니다. 여기 내 코드는box2d (cocos2dx)에서 원형 바디 포지셔닝이 작동하지 않습니다.
// Create circular sprite and body
CCSprite* ball_sprite = CCSprite::create("ball.png");
this->addChild(ball_sprite);
b2BodyDef ballBodyDef;
ballBodyDef.type = b2_dynamicBody;
ballBodyDef.position.Set(screenSize.width/PTM_RATIO, screenSize.height/2/PTM_RATIO);//im running it in an iphone retina and screensize is 640x960
ballBodyDef.userData = ball_sprite;
ball_body = _world->CreateBody(&ballBodyDef);
b2CircleShape ballshape;
ballshape.m_radius = BALL_SIZE/2;
b2FixtureDef ballShapeDef;
ballShapeDef.shape = &ballshape;
ballShapeDef.density = 100.0f;
ballShapeDef.friction = 0.5f;
ballShapeDef.restitution = 0.7f;
ball_body->CreateFixture(&ballShapeDef);
// Create rectangular sprite and body
CCSprite* block_sprite = CCSprite::create("HelloWorld.png");
this->addChild(block_sprite);
b2BodyDef blockBodyDef;
blockBodyDef.type = b2_staticBody;
blockBodyDef.position.Set(0, screenSize.height/2/PTM_RATIO);
blockBodyDef.userData = block_sprite;
block_bodie = _world->CreateBody(&blockBodyDef);
b2PolygonShape blockshape;
blockshape.SetAsBox(B_WIDTH/PTM_RATIO,B_HEIGHT/PTM_RATIO);
b2FixtureDef blockShapeDef;
blockShapeDef.shape = &blockshape;
blockShapeDef.density = 100.0f;
blockShapeDef.friction = 0.5f;
blockShapeDef.restitution = 0.7f;
block_bodie->CreateFixture(&blockShapeDef);
직사각형 바디는 예상대로 화면에 표시됩니다.
그러나 원형 몸체는 화면에 표시되지 않습니다.
업데이트 기능에서 원형 바디의 위치를 인쇄 할 때 위치는 2000 년경 큰 숫자입니다.이 위치는 프로그램을 실행할 때마다 다릅니다.
직사각형 바디가 추가되지 않은 경우 (block_bodie-> CreateFixture (& blockShapeDef); 라인을 주석 처리하면) 원형 바디가 예상대로 화면에 표시됩니다.
내가 여기서 잘못하고있는 것은 무엇입니까?
미리 감사드립니다.