base.cTrav = P.CollisionTraverser('CollisionTraverser of scene.py') floorMASK = P.BitMask32.bit(1) offMASK = P.BitMask32.allOff() ... class Plant: def __init__(self,pos=Vec2(0,0),type='Tree'): ... self.prime = P.NodePath('Character primary NodePath') self.prime.reparentTo(render) self.prime.setPos(self.pos) # Initialise collision detection stuff self.radius=3 self.sphere = P.CollisionSphere(0,0,0,self.radius) self.spherenp = self.prime.attachNewNode(P.CollisionNode('cnode')) self.spherenp.node().addSolid(self.sphere) self.floorhandler = P.CollisionHandlerFloor() self.floorhandler.addCollider(self.spherenp,self.prime) base.cTrav.addCollider(self.spherenp,self.floorhandler) # Uncomment this line to show the CollisionSphere self.spherenp.show() self.spherenp.node().setFromCollideMask(floorMASK) self.spherenp.node().setIntoCollideMask(offMASK) ... tnp1,tnpc1 = makeTerrain(h=8) tnpc1.setCollideMask(floorMASK) # So the CollisionSphere of Plant should collide with the collision geometry tnpc1 in floorhandler mode, but nothing happens