Is it possible to simulate a vJoy axis via jeyboard?
For example, I already did so:
Code: Select all
if keyboard.getPressed(Key.NumberPad4): # left
kx = kx -500
Code: Select all
vJoy[2].x = kx
Code: Select all
if keyboard.getPressed(Key.NumberPad4): # left
kx = kx -500
Code: Select all
vJoy[2].x = kx
Code: Select all
keyboard.setKey(Key.U, joystick[j].getDown(19))
Code: Select all
keyboard.setKey(Key.Numberpad4, vJoy[2].x = kx))
Code: Select all
# Mapping keyboard to the axis, to properly initialize them
# Left
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.LeftShift) and keyboard.getKeyDown(Key.LeftArrow):
kbdX = xoutput[0].AxisMin
# Down
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.LeftShift) and keyboard.getKeyDown(Key.DownArrow):
kbdY = xoutput[0].AxisMin
# Right
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.LeftShift) and keyboard.getKeyDown(Key.RightArrow):
kbdX = xoutput[0].AxisMax
# Up
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.LeftShift) and keyboard.getKeyDown(Key.UpArrow):
kbdY = xoutput[0].AxisMax
# Directional movements, with incremental values
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad5): # center
kbdX = 0
kbdY = 0
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad4): # left
kbdX = kbdX -(headlook)
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad2): # down
kbdY = kbdY -(headlook)
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad6): # right
kbdX = kbdX +(headlook)
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad8): # up
kbdY = kbdY +(headlook)
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad1): # left/down
kbdX = kbdX -(headlook)
kbdY = kbdY -(headlook)
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad3): # down/right
kbdY = kbdY -(headlook)
kbdX = kbdX +(headlook)
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad9): # right/up
kbdX = kbdX +(headlook)
kbdY = kbdY +(headlook)
if keyboard.getKeyDown(Key.RightControl) and keyboard.getKeyDown(Key.NumberPad7): # up/left
kbdX = kbdX -(headlook)
kbdY = kbdY +(headlook)
# Panel shows up and close when keys releases
# Target panel
if keyboard.getKeyDown(Key.LeftShift) and keyboard.getPressed(Key.A): # Target Panel
kbdX = -11500
kbdY = -2100
if keyboard.getKeyUp(Key.LeftShift) and (kbdX == -11500):
kbdX = 0
kbdY = 0
# System panel
if keyboard.getKeyDown(Key.LeftShift) and keyboard.getPressed(Key.D): # System Panel
kbdX = 11500
kbdY = -2100
if keyboard.getKeyUp(Key.LeftShift) and (kbdX == 11500):
kbdX = 0
kbdY = 0
# Role panel
if keyboard.getKeyDown(Key.LeftShift) and keyboard.getPressed(Key.S): # Role Panel
kbdX = 0
kbdY = -11500
if keyboard.getKeyUp(Key.LeftShift) and (kbdY == -11500):
kbdX = 0
kbdY = 0
# axis filtering for headlook
headlookX = filters.deadband((mouseX), 500)
headlookY = filters.deadband((filters.mapRange((mouseY), -100, 100, 100, -100)), 500)
# Switch mouse headlook - it temporary disable the mouse movements
if keyboard.getKeyDown(Key.LeftShift) and keyboard.getKeyDown(Key.W):
vJoy[2].x = headlookX
vJoy[2].y = headlookY
vJoy[1].x = 0
vJoy[1].y = 0
else:
vJoy[2].x = kbdX
vJoy[2].y = kbdY