View Single Post
  #2  
Old 08-17-2007, 09:44 AM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
Hi,

The following code should do what you want using the viztask module:
Code:
import viz
viz.go()

male = viz.add('male.cfg',pos=(0,0,6),euler=(180,0,0))
male.state(1)

import viztask

def execute():
	while True:
	
		yield viztask.waitKeyDown(' ')
		
		#Execute animation with no delay out
		male.execute(7,delay_out=0.0)

		#Wait for animation to complete
		yield viztask.waitAnimationEnd(male,7)
		
		#Set animation state with no delay
		male.state(8,delay=0.0)
		
		#Restore standing pose after 1 second
		yield viztask.waitTime(2)
		male.state(1)

viztask.schedule( execute() )
If you prefer using actions, then the following code should work as well:
Code:
import viz
viz.go()

man = viz.add('male.cfg')

def onKeyUp(key):
	if key == ' ':
		man.addAction(vizact.animation(7,0,0))
		#Place avatar in laying state 
		man.addAction(vizact.state_node(8,0.0))
		man.addAction(vizact.waittime(2))
		#Place avatar in standing state
		man.addAction(vizact.state_node(1))

viz.callback(viz.KEYUP_EVENT,onKeyUp)
Reply With Quote