heres the setup collisions method if that helps at all
def setupCollisions(self):
create the main collision handler
self.cHandlerc = CollisionHandlerEvent()
#add the collision registration pattern
self.cHandlerc.addInPattern('%fn-into-%in')
self.cTravc = CollisionTraverser()
base.cTrav = self.cTravc
#get bounds of ship and create 3 collision spheres - center left right
bounds = self.ship.getChild(0).getBounds()
center = bounds.getCenter()
radius = bounds.getRadius()
cSpherec = CollisionSphere(center+(Vec3(0,0.5,0)),radius-2.4)
cSpherel = CollisionSphere(center+(Vec3(-1.5,-0.8,0)),radius-2.5)
cSpherer = CollisionSphere(center+(Vec3(1.5,-0.8,0)),radius-2.5)
cSpherelbuffer = CollisionSphere(center+(Vec3(1.5,0.2,0)),radius-2.8)
cSphererbuffer = CollisionSphere(center+(Vec3(-1.5,0.2,0)),radius-2.8)
#add the spheres to empty nodes
cNodec = CollisionNode("shipc")
cNodel = CollisionNode("shipl")
cNoder = CollisionNode("shipr")
cNodelbuffer = CollisionNode("shipr")
cNoderbuffer = CollisionNode("shipr")
cNodec.addSolid(cSpherec)
cNodel.addSolid(cSpherel)
cNoder.addSolid(cSpherer)
cNodelbuffer.addSolid(cSpherelbuffer)
cNoderbuffer.addSolid(cSphererbuffer)
cNodec.setIntoCollideMask(BitMask32.allOff())
cNodel.setIntoCollideMask(BitMask32.allOff())
cNoder.setIntoCollideMask(BitMask32.allOff())
cNoderbuffer.setIntoCollideMask(BitMask32.allOff())
cNodelbuffer.setIntoCollideMask(BitMask32.allOff())
#attach the nodes to the cNodePaths
self.cNodePathc = self.ship.attachNewNode(cNodec)
self.cNodePathl = self.ship.attachNewNode(cNodel)
self.cNodePathr = self.ship.attachNewNode(cNoder)
self.cNodePathrbuffer = self.ship.attachNewNode(cNoderbuffer)
self.cNodePathlbuffer = self.ship.attachNewNode(cNodelbuffer)
#show the collision spheres
self.cNodePathc.show()
self.cNodePathl.show()
self.cNodePathr.show()
self.cNodePathrbuffer.show()
self.cNodePathlbuffer.show()
#add the completed cNotePaths to the collision traverser
self.cTravc.addCollider(self.cNodePathc,self.cHandlerc)
self.cTravc.addCollider(self.cNodePathl,self.cHandlerc)
self.cTravc.addCollider(self.cNodePathr,self.cHandlerc)
self.cTravc.addCollider(self.cNodePathrbuffer,self.cHandlerc)
self.cTravc.addCollider(self.cNodePathlbuffer,self.cHandlerc)
self.accept("shipl-into-mine",self.handleShipCollisionLeft)
self.accept("shipc-into-mine",self.handleShipCollisionCenter)
self.accept("shipr-into-mine",self.handleShipCollisionRight)