View Single Post
  #1  
Old 04-14-2010, 01:03 PM
Josh Josh is offline
Member
 
Join Date: Jan 2010
Posts: 63
Wait for function to return?

Hi all

I want to stop the execution of my script until a function returns.

The idea is to stop the script when starting a task, where the user has to press a key (P), and as soon as he presses the key, the script should continue.

Code:
class Experiment:

        # This method is called somewhere...
	def start_green_face_task(self):
		self.avatar_to_morph().make_green_face()
		self.test_reaction_time() # Here the code should stop until this method returns (when the user presses P)! But how can this be achieved?
		self.end_green_face_task() # This method should be called *after* the user presses P!
		
	def test_reaction_time(self):
		while True:
			yield self.viztask.waitKeyDown('P', d)
			return
		
	def end_green_face_task(self):
		self.avatar_to_morph().remove_green_face()
Sadly I don't get it to work... I tried stuff like

yield self.test_reaction_time()

or

self.viztask.schedule(self.test_reaction_time())

but somehow this doesn't do what I need...

Thanks very much for help!
Josh
Reply With Quote