2012-03-18 4 views
0

저는 Box2D로 작업을 시도하고 있습니다. 내 프로그램을 컴파일 할 수는 있지만 실행하려고하면 오류가 발생합니다. 여기에 코드입니다 :Box2D에서 밀도를 설정할 수 없습니다.

bodyDef.type = b2_dynamicBody; 
bodyDef.position.Set(x, y); 
body = world.CreateBody(&bodyDef); 
b2PolygonShape dynamicBox; 
dynamicBox.SetAsBox(w, h); 
b2FixtureDef fixtureDef; 
fixtureDef.shape = &dynamicBox; 
fixtureDef.density = 1.0f; 
fixtureDef.friction = 0.3f; 
body->CreateFixture(&fixtureDef); 

오류 : 내가 알아 낸

mezo: ~/cpp/Box2D_v2.2.1/Box2D/Collision/Shapes/b2PolygonShape.cpp:352: virtual void b2PolygonShape::ComputeMass(b2MassData*, float32) const: Assertion `area > 1.19209289550781250000e-7F' failed. 

경우 주석으로 fixtureDef.density = 1.0F; 나는 밀도를 0으로 설정하면 몸체가 빠르게 움직이는 것을 제외하고는 컴파일하고 실행할 수 있으며 모든 것이 작동합니다.

답변

1

모양의 영역이 매우 작게 보입니다. w, h 값을 확인하십시오. 몸의 속도는 밀도에 아무런 영향을주지 않습니다.

+0

오, 나는 이것을 알아 채지 못했다고 믿을 수 없다. 감사 – ewooycom

관련 문제