2015-06-13 14 views
5

में रोल नहीं करता है जैसा कि आप छवि में देख सकते हैं, बॉक्स रोल नहीं करता है लेकिन ढलान पर स्लाइड करता है।बॉक्स बुलेट भौतिकी

enter image description here

यहाँ, मैं कैसे कोड में बॉक्स बनाने है

config = new btDefaultCollisionConfiguration(); 
dispatcher = new btCollisionDispatcher(config); 
broadphase = new btDbvtBroadphase(); 
solver = new btSequentialImpulseConstraintSolver(); 
bWorld = new btDiscreteDynamicsWorld(dispatcher, broadphase, solver, config); 
bWorld->setGravity(btVector3(0, -9.8f, 0)); 

// ... 

btTransform t; 
t.setIdentity(); 
t.setOrigin(btVector3(position.x, position.y, position.z)); 

btBoxShape* box = new btBoxShape(btVector3(size.x, size.y, size.z)); 
btVector3 inertia(0, 0, 0); 
float mass = 10.f; 
box->calculateLocalInertia(mass, inertia); 

btMotionState* mState = new btDefaultMotionState(t); 
btRigidBody::btRigidBodyConstructionInfo cInfo(mass, mState, box); 
//cInfo.m_restitution = 0.4f; 
//cInfo.m_friction = 0.5f; 
btRigidBody* body = new btRigidBody(cInfo); 
//body->setLinearFactor(btVector3(1,1,0)); 
//body->setAngularFactor(btVector3(0,0,1)); 
m_impl->bWorld->addRigidBody(body); 

मैं घर्षण और अन्य मानकों के साथ की कोशिश की लेकिन परिणाम एक ही है। मुझे बताएं कि मैं यहाँ क्या गलत कर रहा हूं।

उत्तर

1

आपको अपने inertia वेक्टर को btRigidBodyConstructionInfo पर पास करने की आवश्यकता है। btRigidBodyConstructionInfo कन्स्ट्रक्टर (डिफ़ॉल्ट मान वाला एक) पर चौथा पैरामीटर देखें।

+0

ओह .. हाँ, धन्यवाद। – shan

संबंधित मुद्दे