problems with picking objects

I think I understand what you are looking for now. You want to change the object you are dragging when it collides with another object.

What you want to do is create another smaller collision sphere for each object that you are dragging. This new collision sphere will collide with the new collision spheres in other objects, so set the bitmasks for all of the new collison spheres the same. You can use a CollisionHandlerEvent() to send messages with addInPattern() and addOutPattern() . Listen for the inPattern event with self.accept() in your world class. You can get the into node’s name with the “%in” pattern string (look in the manual on how to do this). When the two objects collide, ignore the inPattern, and switch your self.i to the object that was collided into. Wait until the objects are not colliding anymore ( listen for the outPattern that you have created ) and then listen for the inPattern again. Its a little confusing, and there are some details you will need to work out, but I hope it helps.