WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Just an Idea to do it (https://forum.worldviz.com/showthread.php?t=3665)

Moh200jo 03-29-2011 02:33 AM

Just an Idea to do it
 
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
Code:

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:
Code:

.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:
Code:

#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 )



All times are GMT -7. The time now is 04:44 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC