import viz import oculus viz.setMultiSample(4) viz.fov(60) viz.go() #Add a maze maze = viz.addChild('maze.osgb') # Setup Oculus Rift HMD hmd = oculus.Rift() # Setup navigation node and link to main view navigationNode = viz.addGroup() viewLink = viz.link(navigationNode, viz.MainView) viewLink.preMultLinkable(hmd.getSensor()) # Apply user profile eye height to view viewLink.setOffset([0,1.8,0]) #Add a joystick dinput = viz.add('DirectInput.dle') joy = dinput.addJoystick() joy.setDeadZone(0.2) def UpdateJoystick(): elapsed = viz.elapsed() #Get the joystick position x,y,z = joy.getPosition() #Get the twist of the joystick twist = joy.getTwist() #Move the viewpoint based on xy-axis value move_amount = 5 * elapsed yaw,pitch,roll = viewLink.getEuler() m = viz.Matrix.euler(yaw,0,0) m.preTrans([x*move_amount,0,y*move_amount]) navigationNode.setPosition(m.getPosition(), viz.REL_PARENT) #Turn the viewpoint left/right based on twist value turn_amount = 90 * elapsed viz.MainView.setEuler([z*turn_amount,0,0], viz.BODY_ORI, viz.REL_PARENT) #UpdateJoystick every frame vizact.ontimer(0,UpdateJoystick)