首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么使用焊接接头会使我的Box2D程序变慢?

为什么使用焊接接头会使我的Box2D程序变慢?
EN

Stack Overflow用户
提问于 2012-08-03 15:06:49
回答 1查看 2.3K关注 0票数 2

我正在尝试为我的box2d车身实现焊接接头:

代码语言:javascript
运行
复制
for(pos = _contactListener->_contacts.begin(); 
    pos != _contactListener->_contacts.end(); ++pos) {
    MyContact contact = *pos;


    b2Body *bodyA = contact.fixtureA->GetBody();
    b2Body *bodyB = contact.fixtureB->GetBody();

    b2Vec2 worldCoordsAnchorPoint = bodyA->GetWorldPoint (b2Vec2(0,0)); 
    b2WeldJointDef weldJointDef;
    weldJointDef.bodyA = bodyA;
    weldJointDef.bodyB = bodyB;

    weldJointDef.localAnchorA = weldJointDef.bodyA->GetLocalPoint(worldCoordsAnchorPoint);
    weldJointDef.localAnchorB = weldJointDef.bodyB->GetLocalPoint(worldCoordsAnchorPoint);
    weldJointDef.referenceAngle = weldJointDef.bodyB->GetAngle() - weldJointDef.bodyA->GetAngle();
    weldJointDef.collideConnected = true;
    weldJointDef.userData = @"tile";

    weldJointDef.Initialize(bodyA, bodyB, worldCoordsAnchorPoint);
    world->CreateJoint(&weldJointDef);
    //}
}

但我的fps很低。我认为这是因为我不检查身体是否是要焊接的。怎样才能检查车身是焊接的呢?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-02-16 14:23:31

根据您的代码,我假设您正在尝试使用焊缝连接所有接触的对象。因为这些物体是有接触的,所以当你把它们焊接在一起时,它们可能会发生重叠或碰撞。但是,将collideConnected = true设置为true。这意味着,如果他们现在正在碰撞,他们将继续碰撞,他们不能分开,因为焊接接头。这应该会产生很多不那么有意义的计算,从而拖低fp。

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

https://stackoverflow.com/questions/11798352

复制
相关文章

相似问题

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