![]() |
#3
|
|||
|
|||
So right now I have to create a whole new sensor to get it to work, which is what I've done here. That is fine, but I don't know how to control it so that the first one will fade out as the new one comes in. With what I did below the first sphere automatically fades out, and the second sphere is always there. I only want one sphere to show up at a time.
However, If there is a way to keep one sensor and get it to move again and again when the marker and sensor touch each other that would be easier. #Create proximity manager manager = vizproximity.Manager() manager.setDebug(viz.ON) #proximity sensor-sphere sphereSensor = vizproximity.Sensor(vizproximity.Box([0.5,0.5,0.5],center=[0,0.1,0]),source=sphere) #Add main viewpoint as proximity target target = vizproximity.Target(marker2) #Add viewpoint target to manager manager.addTarget(target) #sphere movement 1 def ExitProximity(e): PointB = vizact.moveTo([0,1.5,1],speed=2) sphere.addAction(PointB) manager.onExit(sphereSensor,ExitProximity) #Fade Target 1 out fadeout = vizact.fadeTo(0,speed=1) vizact.onbuttondown('f',fadeout) sphere.addAction(fadeout) #Load Target 2 sphere2 = viz.add('ball.wrl') shape = sphere.collideBox() sphere2.setPosition([0,1.5,1]) viztask.waitActionEnd(sphere2,fadeout) #proximity sensor-sphere2 sphere2Sensor = vizproximity.Sensor(vizproximity.Box([0.5,0.5,0.5],center=[0,0.1,0]),source=sphere2) #Add sensors to manager (sphere) manager.addSensor(sphereSensor) manager.addSensor(sphere2Sensor) #Sphere movement 2 def ExitProximity2(e): PointC = vizact.moveTo([0,1.5,-2]) sphere2.addAction(PointC) manager.onExit(sphere2Sensor,ExitProximity2) |
Thread Tools | |
Display Modes | Rate This Thread |
|
|