2016-06-09 60 views
0

我正在使用Bullet Open Source Physics Library 1.5.8使用Panda3D 1.10編寫遊戲。如何從蛋文件生成碰撞形狀?從.egg文件創建BulletCollisionShape

這是我到目前爲止的代碼:

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) 

回答

0

我認爲我有一個soulution,但是,我也有問題。

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 

它看起來像工作,但我有問題......試試看。