This script from Skagen at
https://www.lfs.net/forum/thread/85877- ... ontrollers is more responsive, and smoother for mouse driving. I modified it to suit my needs for mouse driving in Defiance, and removed the game specific stuff from the script. I'm sure it could be adapted for Y-coordinates as well. The mouse axis in this script behaves better than the above script, and you get fewer premature x's to zero.
I still need to do some tweaking.
Code: Select all
if starting:
enabled = False
system.setThreadTiming(TimingTypes.HighresSystemTimer)
system.threadExecutionInterval = 5
a = 0
b = 0
c = 0
d = 0
int32_max = (2 ** 14) - 1
int32_min = (( 2** 14) * -1) + 1
v = vJoy[5]
v.x, = (int32_min,)
# Mouse settings
global mouse_sensitivity, sensitivity_center_reduction
mouse_sensitivity = 300.0
sensitivity_center_reduction = 2.0
# Steering settings
global steering, steering_max, steering_min, steering_center_reduction
# Init values, do not change
steering = 0.0
steering_max = float(int32_max)
steering_min = float(int32_min)
steering_center_reduction = 1.0
# Steering logic
if steering > 0:
steering_center_reduction = sensitivity_center_reduction ** (1 - (steering / steering_max))
elif steering < 0:
steering_center_reduction = sensitivity_center_reduction ** (1 - (steering / steering_min))
elif steering > 500:
steering_center_reduction = sensitivity_center_reduction ** (0.1 - (steering / steering_max))
elif steering < -500:
steering_center_reduction = sensitivity_center_reduction ** (0.1 - (steering / steering_min))
if (enabled):
steering = steering + ((float(mouse.deltaX) * mouse_sensitivity) / steering_center_reduction)
b += mouse.deltaX
d += mouse.deltaX
if steering > steering_max:
steering = steering_max
elif steering < steering_min:
steering = steering_min
v.x = int(round(steering))
if filters.stopWatch(True,200):
a = b + 0
if filters.stopWatch(True,30):
c = d + 0
if (a - c == 0):
steering = 0
if mouse.middleButton:
steering = 0.0
# PIE diagnostics logic
diagnostics.watch(v.x)
toggle = keyboard.getPressed(Key.Home)
if toggle:
enabled = not enabled