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)