【发布时间】:2014-05-17 13:34:44
【问题描述】:
首先是一些事实: 我尝试使用 Visual Studio 2012 在 C++ 中使用 Bullet 实现碰撞检测。 到目前为止,我有一个 Sphere:
btCollisionShape* fallShape = new btSphereShape(100);
btDefaultMotionState* fallMotionState =
new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,500,0)));
btScalar mass = 1000;
btVector3 fallInertia(0,0,0);
fallShape->calculateLocalInertia(mass,fallInertia);
btRigidBody::btRigidBodyConstructionInfo fallRigidBodyCI(mass,fallMotionState,fallShape,fallInertia);
btRigidBody* fallRigidBody = new btRigidBody(fallRigidBodyCI);
physicsWorld->addRigidBody(fallRigidBody);
和我的关卡,实现为 btBvhTriangleMeshShape:
triangles.addTriangle(btVector3 (0, 0, 0),btVector3 (0, 0, 0),btVector3 (0, 0, 0));
btCollisionShape* levelShape = new btBvhTriangleMeshShape(&triangles, true, true);
btDefaultMotionState* levelMotionState = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,0,0)));
btRigidBody::btRigidBodyConstructionInfo
levelRigidBodyCI(0,levelMotionState,levelShape,btVector3(0,0,0));
btRigidBody* levelRigidBody = new btRigidBody(levelRigidBodyCI);
physicsWorld->addRigidBody(levelRigidBody);
我知道三角形中只有一个三角形,但它们会发生碰撞。
我现在的问题是,当它们发生碰撞时,我的程序会关闭而没有特定错误,只是来自 Visual Studio 的未处理异常窗口。
谁有想法?
【问题讨论】:
标签: c++ visual-studio-2012 bullet bulletphysics