I’m having trouble with the collisionHandlerFloor(), I think i set the whole bunch up allright, but it just wont do anything…
Dont know wether it matters, but I used baked in solids in the models (polyset)
This is the code I’m using:
def loadWorld(self):
# load models
self.scene = loader.loadModel('models/course1/course1')
self.scene.reparentTo(render)
self.solids = loader.loadModel('models/course1/course1_coll')
self.solids.reparentTo(render)
self.player = loader.loadModel('models/carnsx/carnsx2')
self.player.reparentTo(render)
self.player.setScale(0.7)
#set collision solids
# all basic collisions are on bit 0
# wall solids
self.walls = self.solids.find("**/wall")
self.walls.node().setIntoCollideMask(BitMask32.bit(0))
self.ground = self.solids.find("**/ground")
self.ground.node().setIntoCollideMask(BitMask32.bit(0))
#car solids
self.body = self.player.attachNewNode(CollisionNode('colNode'))
self.body.node().addSolid(CollisionRay(0, 0, 0, 0, 0, -1))
self.body.node().setIntoCollideMask( BitMask32.allOff() )
self.body.node().setFromCollideMask( BitMask32.bit(0))
# add collision nodes to a collision handler
self.cTrav = CollisionTraverser()
self.cHandler = CollisionHandlerFloor()
self.cHandler.addCollider(self.body,self.player)
self.cTrav.addCollider(self.body.node(), self.cHandler)
base.cTrav = self.cTrav