View Single Post
  #3  
Old 11-17-2016, 02:45 AM
jelly jelly is offline
Member
 
Join Date: Feb 2016
Posts: 38
Dear Jeff,

thank you for the help, this seems like the way to go! But I have some problems with it:

I noticed that adding the line

Code:
viztask.schedule(proximityTask())
makes the event happen only once, upon entering the sensor for the first time.

My question would be how do I make it happen everytime, like it was the case when I used

Code:
manager.onEnter(SensorIndexFinger,EnterProximity_IndexFinger)
I tried the following (somehow adding the function that specifies the delay to the manager):

Code:
SensorIndexFinger = vizproximity.Sensor(vizproximity.Box([0.03,0.03,0.03],center=[0,0,0]),IndexFinger) 
manager.addSensor(SensorIndexFinger)

def proximityTask():
        global handstate
	yield vizproximity.waitEnter(SensorIndexFinger)
	print 'entered sensor'
	yield viztask.waitTime(2)
	print 'two seconds elapsed'
        handstate = 1
        print 'change hand'

def EnterProximity_IndexFinger(e): # decide what happens on sensor entry
	global handstate
	e.sensor == SensorIndexFinger 
	print "activate proximityTask"
manager.onEnter(SensorIndexFinger,proximityTask())
But I get an error "TypeError: 'generator' object is not callable."

I would be very happy to hear if you had any suggestions on how to call the action (with delay) every time the sensor was entered, as I can't seem to find a way to implement it
Reply With Quote