View Single Post
  #6  
Old 10-18-2010, 09:45 AM
masaki masaki is offline
Member
 
Join Date: Jan 2008
Posts: 63
Hi,

I rewrote your code using the viztask module. I left sample code for you in the task function to wait for a key press or a certain length of time to pass before continuing on. You might want to look into using the viztask module instead of timers - samples are in the help doc.

Best,
Masaki

Code:
import viztask

def myTask():
	# wait for a certain length of time or a key press
	waittime = viztask.waitTime( 1 )	#define wait one second
	waitkey =viztask.waitKeyDown('0')	#define wait for 0 key press
	yield viztask.waitAny( [waittime, waitkey] )	# #wait for either waittime or waitkley
	while True: #while loop infinitely
		for agent in walking:
			agentposition = agent.get(viz.POSITION)
			agentgap = vizmat.Distance(agentposition, agent.set[agent.whichturn])
			if agentgap < .1:
				agent.whichturn += 1
				if agent.whichturn == agent.end:
					agent.whichturn = 0
			
			walk = vizact.walkto(agent.set[agent.whichturn][0],agent.set[agent.whichturn][1],agent.set[agent.whichturn][2])
			agent.addAction(walk)
			
			yield viztask.waitActionEnd( agent, walk )	#wait for walk action to end for agent
			print 'walk to', agent.whichturn, 'done' 
			yield viztask.waitTime(5) 	#wait 5 seconds before looping again
			
viztask.schedule( myTask() )
Reply With Quote