View Single Post
  #3  
Old 02-21-2014, 06:00 AM
Frank Verberne Frank Verberne is offline
Member
 
Join Date: Mar 2008
Location: Netherlands
Posts: 148
The solution: simplified and readable (thanks to the code tags). Next time, posting with code tags makes it much easier to debug/troubleshoot as Jeff mentioned.

Code:
import viz
import vizshape
import vizproximity

viz.setMultiSample(4)
viz.MainWindow.fov(60)
viz.go()

ground = viz.add('ground.osgb')

viz.MainView.collision( viz.ON )

global reward1	
reward1 = vizshape.addCube(size=.5)
reward1.color(viz.WHITE)
reward1.setPosition([1,2,1])
reward1.setEuler([0,0,0])
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=.5)
reward2.color(viz.WHITE)
reward2.setPosition([-1,2,1])
reward2.setEuler([0,0,0])
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(reward1.getScale(),center=[0,0,0]),reward1)
reward2Sensor = vizproximity.Sensor(vizproximity.Box(reward2.getScale(),center=[0,0,0]),reward2)

#Create proximity manager 
global manager
manager = vizproximity.Manager()

global target
target = vizproximity.Target(viz.MainView)
manager.addTarget(target)

#Add destination sensors to manager
manager.addSensor(reward1Sensor)
manager.addSensor(reward2Sensor)

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)
		value2.color(viz.RED)
		choseReward1 = True
		choseReward2 = False
		print 'reward: 1'
	elif e.sensor == reward2Sensor:
		value1.color(viz.RED)
		value2.color(viz.GREEN)
		choseReward1 = False
		choseReward2 = True
		print 'reward: 2'
manager.onEnter(None,EnterProximity)
Reply With Quote