View Single Post
  #6  
Old 04-07-2009, 06:56 PM
Jeff Jeff is offline
WorldViz Team Member
 
Join Date: Aug 2008
Posts: 2,471
This creates a KeyboardCamera object. Use the sensitivity method to scale the movement and turning speeds. You can increase the speed of the avatar animation when the camera speed increases.

Code:
import viz
viz.go()

viz.add('tut_ground.wrl')

avatar = viz.add('vcc_female.cfg')
avatar.state(1)

import vizcam
camera = vizcam.KeyboardCamera(forward=viz.KEY_UP,backward=viz.KEY_DOWN,turnRight=viz.KEY_RIGHT,turnLeft=viz.KEY_LEFT)
viz.cam.setHandler(camera)

view = viz.MainView
link = viz.link(view, avatar)
link.preTrans([0,-1.8,2])

def changeSpeed(key):
	
	if key == '1':
		avatar.speed(1)
		camera.sensitivity(1,1)
	elif key == '2':
		avatar.speed(1.2)
		camera.sensitivity(2,1)
	elif key == '5':
		avatar.speed(1.5)
		camera.sensitivity(5,1)
		
viz.callback(viz.KEYDOWN_EVENT,changeSpeed)


#change the state when avatar stops or starts
pos = avatar.getPosition()
def checkState():
	
	global pos
	if pos == avatar.getPosition():
		avatar.state(1)
		avatar.speed(1)
	else:
		pos = avatar.getPosition()
		avatar.state(2)
		
vizact.ontimer(.1, checkState)
Reply With Quote