# DukeVR XBox360 -> Mouse/Key Emulator ------- def update(): if (xbox360[0].rightStickX > STICK_DEAD_ZONE): mouse.deltaX = (xbox360[0].rightStickX - STICK_DEAD_ZONE) * MOUSE_MAX_SPEED # turn right = right stick, right if( xbox360[0].rightStickX < -STICK_DEAD_ZONE): mouse.deltaX = (xbox360[0].rightStickX + STICK_DEAD_ZONE) * MOUSE_MAX_SPEED # turn left = right stick, left mouse.leftButton = (xbox360[0].rightTrigger > TRIGGER_DEAD_ZONE or xbox360[0].a) # weapon fire = A or right trigger keyboard.setKey(Key.Q, xbox360[0].leftTrigger > TRIGGER_DEAD_ZONE) # quick kick = left trigger keyboard.setKey(Key.W, xbox360[0].leftStickY > STICK_DEAD_ZONE or xbox360[0].up) # forward = left stick up, or DPad up keyboard.setKey(Key.A, xbox360[0].leftStickX < -STICK_DEAD_ZONE or xbox360[0].left) # left strafe = left stick left, or DPad left keyboard.setKey(Key.S, xbox360[0].leftStickY < -STICK_DEAD_ZONE or xbox360[0].down) # backward = left stick down, or DPad down keyboard.setKey(Key.D, xbox360[0].leftStickX > STICK_DEAD_ZONE or xbox360[0].right) # right strafe = left stick right, or DPad right keyboard.setKey(Key.Space, xbox360[0].x) # jump = X keyboard.setKey(Key.LeftControl, xbox360[0].y) # crouch = Y keyboard.setKey(Key.E, xbox360[0].b) # use / open doors = B keyboard.setKey(Key.Semicolon, xbox360[0].leftShoulder) # prev weap = left (shoulder) button keyboard.setKey(Key.Apostrophe, xbox360[0].rightShoulder) # next weap = right (shoulder) button keyboard.setKey(Key.RightBracket, xbox360[0].start) # inventory next = start keyboard.setKey(Key.Return, xbox360[0].back) # inventory use = back keyboard.setKey(Key.LeftShift, xbox360[0].leftThumb) # run (push left stick in) global MOUSE_MAX_SPEED if (xbox360[0].rightThumb): # faster turning (push right stick in) MOUSE_MAX_SPEED = 6 # adjust if needed (max turn rate) else: MOUSE_MAX_SPEED = 2.5 # adjust if needed (normal turn rate) if starting: MOUSE_MAX_SPEED = 2.5 # adjust if needed (normal turn rate) STICK_DEAD_ZONE = 0.45 # adjust if needed TRIGGER_DEAD_ZONE = 0.3 # adjust if needed freeTrack.update += update