首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >幽灵物体-子弹头物理学

幽灵物体-子弹头物理学
EN

Stack Overflow用户
提问于 2011-03-05 16:20:01
回答 2查看 7.2K关注 0票数 3

我试图在bulletphysics中实现一个简单的ghost对象,这就是我创建ghost对象的方式:

代码语言:javascript
复制
btGhostPairCallback* ghostCall = new btGhostPairCallback();
world->getBroadphase()->getOverlappingPairCache()->setInternalGhostPairCallback(ghostCall);

btGhostObject* ghostObj = new btGhostObject();
btCollisionShape* shape = new btBoxShape(btVector3(ofGetWidth()+1000, ofGetHeight()+1000, 50));
ghostObj->setCollisionShape(shape);
btTransform trans;
trans.setIdentity();
trans.setOrigin(btVector3(0,0,-500));
ghostObj->setWorldTransform(trans);
ghostObj->setCollisionFlags( btCollisionObject::CF_NO_CONTACT_RESPONSE);
world->addCollisionObject(ghostObj,btBroadphaseProxy::SensorTrigger,btBroadphaseProxy::AllFilter & ~btBroadphaseProxy::SensorTrigger);

这就是如何找到碰撞的方法:

代码语言:javascript
复制
btCollisionObject* obj = world->getCollisionObjectArray()[j];
btRigidBody* body = btRigidBody::upcast(obj);

    btAlignedObjectArray < btCollisionObject* > objsInsidePairCachingGhostObject;
    btAlignedObjectArray < btCollisionObject* >* pObjsInsideGhostObject = NULL;
    btGhostObject* ghost = btGhostObject::upcast(obj);

    if(ghost){
        objsInsidePairCachingGhostObject.resize(0);
        pObjsInsideGhostObject = &ghost->getOverlappingPairs();
        cout << ghost->getNumOverlappingObjects() << endl;

但我总是得到一个响应,我所有的世界对象都与幽灵对象发生了碰撞。

有人能帮我得到一个功能简单的ghost对象吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-04-20 00:08:21

根据我对GhostObject所知不多,您正在覆盖它的默认冲突标志。尝试更改此行

代码语言:javascript
复制
ghostObj->setCollisionFlags( btCollisionObject::CF_NO_CONTACT_RESPONSE);

至:

代码语言:javascript
复制
ghostObj->setCollisionFlags( ghostObj->getCollisionFlags() | btCollisionObject::CF_NO_CONTACT_RESPONSE);

HTH

票数 3
EN

Stack Overflow用户

发布于 2014-03-19 10:51:52

虽然我同意应该通过向现有标志集添加新标志来正确设置冲突标志,但我还想指出的是,btBoxShape的参数是一个btVector3,它定义了对象的half-extents。这意味着宽度、高度和长度实际上是这些参数的两倍大小()。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5202594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档