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)