Collision Problem

Hello guys, i’m having a problem …
In my game there will be some objects of the scene that will be collideable(is this world exist?) and will not generate any event , and the other ones will open some kind of “mini-games” when colliding with these objects. These objects are in different .egg files.
The problem is , when i use the collision pusher to collide with the “normal” objects , when i try to get “into” the sphere collision i made for my chair , for example , the handlerEvent is not working and it looks like an ordinary object… But when i disable the pusher it works!

Is it really possible to combine these two types of collision?

Thanks

def setUpCollision(self):
		base.pusher = CollisionHandlerPusher()
		self.environ2.setCollideMask(BitMask32.bit(1))
		base.cTrav = CollisionTraverser()
		cn = CollisionNode('avatar')
		
        	fromObject = cn.addSolid(CollisionSphere(0,0,0,12))
       		solid = self.avatar.attachNewNode(cn)
        	##fromObject.show()
		solid.show()
		base.cTrav.addCollider(solid,base.pusher)
        	base.pusher.addCollider(solid,self.avatar, base.drive.node())
        	# init players floor collisions
        	ray = CollisionRay()
        	ray.setOrigin(0,0,-.2)
        	ray.setDirection(0,0,-1)
        	cn = CollisionNode('playerRay')
        	cn.addSolid(ray)
		
        	cn.setFromCollideMask(BitMask32.bit(0))
        	cn.setIntoCollideMask(BitMask32.allOff())
        	solid = self.avatar.attachNewNode(cn)
        	solid.show()
		colNode = CollisionNode('cadeira')
		cadeiraEsfera  = colNode.addSolid(CollisionSphere(-23,19,8,4))
		solid2  = self.cadeira.attachNewNode(colNode)
		
		colNode.setIntoCollideMask(BitMask32.bit(0))
		colNode.setFromCollideMask(BitMask32.allOff())
		solid2.show()
		
		
		
		self.nodeGroundHandler = CollisionHandlerQueue()
        	base.cTrav.addCollider(solid, self.nodeGroundHandler)
		
		base.cTrav.traverse(render)
		#cn.show()
		
		self.collHandEvent=CollisionHandlerEvent()
                self.collHandEvent.addInPattern('into-%in')
		self.collHandEvent.addOutPattern('outof-%in')
		base.cTrav .addCollider(solid2 , self.collHandEvent)
		base.cTrav .addCollider(solid , self.collHandEvent)
		
		self.accept("into-cadeira",self.colisao)

The rule is 1 node goes to 1 handler only.
Same case here :
discourse.panda3d.org/viewtopic.php?t=2508

Thanks , man! It really worked :smiley:

Just only one more question , is it possible , using the handler event , for me to open the mini-game using a button of the keyboard and colliding with the object, like this example?
The problem is that because the event is only generated once when the avatar collides with the object , and not during the collision…

problem solved! i used the addAgainPatern of the HandlerEvent and it worked perfectly! :stuck_out_tongue:

Something i noticed here is that the collision between the avatar and the objects such walls with collision bitmasks its too strong… is there a way to fix it, still using pusher?