View Single Post
  #4  
Old 07-07-2014, 03:23 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
You could log the reaction time and then yield for an additional amount of time equal to 3 seconds minus the reaction time:

Code:
import viz
import viztask
viz.go()

def MyTask():
	
	waitKey = viztask.waitKeyDown(' ')
	waitTime = viztask.waitTime(3)
	
	while True:
		
		print 'start'

		#Wait for next frame to be drawn to screen
		d = yield viztask.waitDraw()

		#Save start time
		startTime = d.time

		d = yield viztask.waitAny( [ waitKey, waitTime ] )
		
		if d.condition is waitKey:
			keyData = d.data
			elapsed = keyData.time - startTime
			print 'The spacebar was pressed after {:.2f} seconds'.format(elapsed)
			yield viztask.waitTime(3-elapsed)
			
		elif d.condition is waitTime:
			print '3 seconds passed, the spacebar was not pressed'

viztask.schedule( MyTask() )
Reply With Quote