View Single Post
  #1  
Old 02-17-2014, 02:32 PM
kmkm kmkm is offline
Member
 
Join Date: Jun 2013
Posts: 7
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)>
Reply With Quote