【问题标题】:Creating a BulletCollisionShape from an .egg file从 .egg 文件创建 BulletCollisionShape
【发布时间】:2016-06-09 18:46:20
【问题描述】:

我正在使用 Bullet Open Source Physics Library 1.5.8 使用 Panda3D 1.10 编写游戏。如何从 egg 文件生成碰撞形状?

这是我目前的代码:

    tree = BulletRigidBodyNode('Tree')
    tree.setMass(10.0)
    shape = getCollisionFromEgg('tree.egg') # This is the 'magic function' I'm after
    tree.addShape(shape)
    np = render.attachNewNode(tree)
    np.setPos(10, 0, 2)
    self.world.attachRigidBody(tree)
    model = loader.loadModel('tree.egg')
    model.reparentTo(np)

【问题讨论】:

    标签: python bulletphysics panda3d


    【解决方案1】:

    我认为我有一个解决方案,但是,我也有问题。

    def toShape(model):
        shape=BulletTriangleMesh()
    
        geomNodeCollection = model.findAllMatches('**/+GeomNode')
        for nodePath in geomNodeCollection:
            geomNode = nodePath.node()
            for i in range(geomNode.getNumGeoms()):
                geom = geomNode.getGeom(i)
                state = geomNode.getGeomState(i)
                shape.addGeom(geom)
        shape=BulletTriangleMeshShape(shape, True)
        return shape
    

    它看起来可以工作,但我遇到了问题......试试看。

    【讨论】: