Proximity Sensor Problem
Hi there,
I'm trying to use a proximity sensor to change the color of a piece of text when the viewpoint collides with a specific node. I've been following the tutorial but I can't figure out why this isn't working. Please help!
<
import viz
viz.setMultiSample(4)
viz.MainWindow.fov(60)
#viz.setLogFile('Task-CP1.log')
viz.go()
#for i in [5]:
import sid
import time
import math
import random
import vizinfo
import vizmat
import viztask
#import vizjoy
import vizcam
import vizact
import vizshape
import vizproximity
#def parameters():
#global experiment_data
global sky
global ground
global bigground
global grass
global skybox
#blank_screen.visible( viz.OFF )
sky = viz.add(viz.ENVIRONMENT_MAP,'sky.jpg')
skybox = viz.add('skydome.dlc')
skybox.texture(sky)
ground = viz.add('randground.wrl') # Add ground
ground.collidePlane() # Make collideable plane
ground.setScale([10,10,10])
ground.disable(viz.INTERSECTION)
bigground = viz.Transform('whitenoise.tga')
bigground.setScale(5,5,5)
ground.texmat(bigground)
grass = viz.addTexture('whitenoise.tga')
viz.MainView.setPosition([50, 1.5, -20])
viz.MainView.setEuler([-9,0,0])
viz.MainView.collision( viz.ON )
viz.MainView.stepsize(.02)
global reward1
reward1 = vizshape.addCube(size=2)
reward1.color(viz.WHITE)
reward1.setPosition([47,0,-10])
reward1.setEuler([0,0,0])
reward1.texture(viz.addTexture('money.jpg'))
global value1
value1 = viz.addText3D('$3')
value1.fontSize(1)
value1.color(viz.RED)
value1Link = viz.link(reward1, value1)
value1Link.postTrans( [-.8, 1, 0] )
global reward2
reward2 = vizshape.addCube(size=1.5)
reward2.color(viz.WHITE)
reward2.setPosition([53,0,5])
reward2.setEuler([0,0,0])
reward2.texture(viz.addTexture('money.jpg'))
global value2
value2 = viz.addText3D('$12')
value2.resolution(2)
value2.fontSize(1)
value2.color(viz.RED)
#value2.center(65,1,5)
value2Link = viz.link(reward2, value2)
value2Link.postTrans( [-.8, 1, 0] )
global reward1Sensor
global reward2Sensor
reward1Sensor = vizproximity.Sensor(vizproximity.Box([5,2,5],center=[0,0,0]),source=reward1)
reward2Sensor = vizproximity.Sensor(vizproximity.Box([5,2,5],center=[0,0,0]),source=reward2)
global target
target = vizproximity.Target(viz.MainView)
#Create proximity manager
global manager
manager = vizproximity.Manager()
#Add destination sensors to manager
manager.addSensor(reward1Sensor)
manager.addSensor(reward2Sensor)
manager.addTarget(target)
vizact.onkeydown('d',manager.setDebug,viz.TOGGLE)
global choseReward1
choseReward1 = False
global choseReward2
choseReward2 = False
def EnterProximity(e):
if e.sensor == reward1Sensor:
value1.color(viz.GREEN)
choseReward1 = True
print 'reward: 1'
elif e.sensor == reward2Sensor:
value2.color(viz.GREEN)
choseReward2 = True
print 'reward: 2'
manager.onEnter(None,EnterProximity)>
|