您的位置:首页 > 其它

bullet物理引擎-配置

2014-06-12 01:17 381 查看
Bullet物理引擎-配置
下载地址:https://code.google.com/p/bullet/downloads/list

如下图:


选择第一个bullet2.82-r2704(这个是sdk)。

下载后解压,如图:


此时lib文件夹下只有一个readme.txt。

进入build文件夹下,如图:



运行vs2010.bat,会在当前目录下生成一个vs2010文件夹,结果如下:



进入vs2010文件夹,问价如下:



第一个文件格式为.sln,表示是vs工程,可以用vs2010打开。

打开后如图:





分别在debug和release模式下生成全部解决方案。完成后可以查看demo运行情况。

生成成功后,bullet文件夹下会显示如下:



说明debug和release模式下生成的文件都存在到了bullet主目录下,而此时的lib文件夹中存在如下文件:



Vs2010工程。

新建一个空白的vs2010控制台工程,添加一个main.cpp文件。拷贝如下内容:

#include <iostream>

#include <btBulletDynamicsCommon.h>

int main (void)

{

btBroadphaseInterface* broadphase = new btDbvtBroadphase();

btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration();

btCollisionDispatcher* dispatcher = new btCollisionDispatcher(collisionConfiguration);

btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver;

btDiscreteDynamicsWorld* dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher,broadphase,solver,collisionConfiguration);

dynamicsWorld->setGravity(btVector3(0,-10,0));

btCollisionShape* groundShape = new btStaticPlaneShape(btVector3(0,1,0),1);

btCollisionShape* fallShape = new btSphereShape(1);

btDefaultMotionState* groundMotionState = new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,-1,0)));

btRigidBody::btRigidBodyConstructionInfo

groundRigidBodyCI(0,groundMotionState,groundShape,btVector3(0,0,0));

btRigidBody* groundRigidBody = new btRigidBody(groundRigidBodyCI);

dynamicsWorld->addRigidBody(groundRigidBody);

btDefaultMotionState* fallMotionState =

new btDefaultMotionState(btTransform(btQuaternion(0,0,0,1),btVector3(0,50,0)));

btScalar mass = 1;

btVector3 fallInertia(0,0,0);

fallShape->calculateLocalInertia(mass,fallInertia);

btRigidBody::btRigidBodyConstructionInfo fallRigidBodyCI(mass,fallMotionState,fallShape,fallInertia);

btRigidBody* fallRigidBody = new btRigidBody(fallRigidBodyCI);

dynamicsWorld->addRigidBody(fallRigidBody);

for (int i=0 ; i<300 ; i++) {

dynamicsWorld->stepSimulation(1/60.f,10);

btTransform trans;

fallRigidBody->getMotionState()->getWorldTransform(trans);

std::cout << "sphere height: " << trans.getOrigin().getY() << std::endl;

}

dynamicsWorld->removeRigidBody(fallRigidBody);

delete fallRigidBody->getMotionState();

delete fallRigidBody;

dynamicsWorld->removeRigidBody(groundRigidBody);

delete groundRigidBody->getMotionState();

delete groundRigidBody;

delete fallShape;

delete groundShape;

delete dynamicsWorld;

delete solver;

delete collisionConfiguration;

delete dispatcher;

delete broadphase;

system("pause");

return 0;

}

保存。

在解决方案上右键—属性,如下:



配置如下:

附加包含目录--添加bullet文件夹下的src文件夹:



附加库目录--下添加bullet文件夹中的lib文件夹:



在debug模式下添加lib文件中的debug模式生成的lib文件。(有debug字符):



同样的,在release模式下添加lib文件夹中的release模式生成的lib文件(无debug字符)。

然后生成解决方案,运行后如图:



配置成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: