rendered paste bodybase.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