#1
|
|||
|
|||
Detecting collision with on-the-fly object
I have generated on-the-fly cylinders using vizshape.addCylinder(). I would like to detect collisions with a specific cylinder.
I am able to detect collisions with objects using viz.callback(viz.COLLISION_EVENT,onCollision). I can get the name of the object collided with by using the following code: Code:
def onCollision(info): print('Collided with object',info.object) How do I name on-the-fly objects, and how do I then get the name of the object when a collision occurs? |
#2
|
|||
|
|||
You can check to see if info.object matches the name assigned to the cylinder:
Code:
import viz import vizshape viz.go() viz.collision(viz.ON) dojo = viz.addChild('dojo.osgb') cylinder = vizshape.addCylinder(pos=[0,1.8,4]) def onCollision(info): if info.object == cylinder: print 'Collided with cylinder' viz.callback(viz.COLLISION_EVENT,onCollision) |
#3
|
|||
|
|||
Thanks very much. It looks like what I hadn't appreciated is that it is not possible to explicitly name objects (with a string), but instead I needed to follow the handle to the object.
Got it all working now |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Real time collision and object navigation | sunil.nair | Vizard | 11 | 10-04-2013 08:10 PM |
Find collision point of line and arbitrary object | asdf | Vizard | 2 | 01-28-2013 10:04 AM |
retrieve Object names | Geoffrey | Vizard | 11 | 12-11-2009 04:26 AM |
linked object collision | pgagolf | Vizard | 1 | 04-19-2007 01:27 PM |
when collision mode is on, can i "turn it off" for an individual object? | Vdoug | Vizard | 1 | 09-22-2005 12:14 PM |