PDA

View Full Version : Just an Idea to do it


Moh200jo
03-29-2011, 02:33 AM
I have 10 objects and want to do something if a collision happens between any of them and Box1. Box 1 can collide with other objects, but I do not want to do anything with that.
I have done that by writing if statement for all of them, but this way is really hard to accommodate
I have to write this

if Box in viz.phys.intersectNode(Obj1) :
.
.
if Box in viz.phys.intersectNode(Obj10):


Anybody has an idea?
Thanks,
Moh

Jeff
03-29-2011, 02:50 PM
You can register a callback function for collision events. If each of these 10 objects has collide notify enabled:
<node3D>.enable( viz.COLLIDE_NOTIFY )
then whenever a collision happens with one of those objects the function will get called. Then you can check to see if the second node passed with the event object is the box:
#Called when two objects collide in the physics simulator
def onCollide(e):
#Did object collide with box?
if e.obj2 == box1:
#Do something

viz.callback( viz.COLLIDE_BEGIN_EVENT, onCollide )