#1
|
|||
|
|||
Collision notifications
I'm using the collision notification mechanism in Vizard, and I want to detect if one object collides with another and apply a force if that happens. But the problem is I can't identify the object. For example, let's say I have an object called "ball", and a object called "racket" already defined and loaded previously on the script, and with the viz.COLLIDE_NOTIFY flag enabled. Then I define the collide notification function:
Code:
def collideNot(e): if e.obj1 == ball or e.obj2 == ball: print "collision" else: print "no collision" |
#2
|
|||
|
|||
I'm not sure what's wrong without seeing more of the script. In the following example viz.COLLIDE_NOTIFY is enabled on the ball. When the ball collides with another object it will generate the collision event and show up as obj1 in the callback function. The object it collides with will be obj2.
Code:
import viz viz.go() viz.phys.enable() ground = viz.add('tut_ground.wrl') ground.collidePlane() ball = viz.add('ball.wrl',pos=(0,1.8,6)) ballPhys = ball.collideSphere(bounce=1.5) ball.enable(viz.COLLIDE_NOTIFY) def onCollide(e): if e.obj1 == ball: print 'ball collision' if e.obj2 == ground: print 'ground collision' viz.callback( viz.COLLIDE_BEGIN_EVENT, onCollide ) |
#3
|
|||
|
|||
I didn't post more of the script because it's a mess right now Anyway, I think it was my fault... The thing I'm trying to do is to detect the collision with only a child of a model. I didn't mention that in my original post for the sake of simplicity, but after checking it, it seems that's the problem, the object I get on the collision event is the parent, not the child.
Code:
child = model.getChild("Plane06") child.enable(viz.COLLIDE_NOTIFY) ... def CollideNot(e): if e.obj2 == child: print "child" if e.obj2 == model: print "model" |
#4
|
|||
|
|||
Collision shapes work with nodes that are childen of viz.WORLD, otherwise they will not be positioned properly.
You could use the method described in the following article: http://kb.worldviz.com/articles/350 |
Thread Tools | |
Display Modes | Rate This Thread |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Collision detection | Moh200jo | Vizard | 1 | 01-27-2010 08:39 AM |
Collision detection with specific models | just alex | Vizard | 1 | 02-06-2009 12:02 PM |
Collision with child nodes | rubberpimple | Vizard | 4 | 09-17-2008 05:27 PM |
Collision detection with haptic pen | mjabon | Vizard | 3 | 01-17-2008 07:35 PM |
collision events trigger | Eunice | Vizard | 1 | 01-03-2006 11:39 AM |