Skip to content

Instantly share code, notes, and snippets.

@notwa
Last active December 14, 2015 04:48
Show Gist options
  • Save notwa/5030400 to your computer and use it in GitHub Desktop.
Save notwa/5030400 to your computer and use it in GitHub Desktop.
left stick to WASD, tested with 360 controller
#Persistent
#SingleInstance Force
Send {w up}
Send {a up}
Send {s up}
Send {d up}
Deadzone := 0.6
SetTimer Wax, 5
return
Wax:
GetKeyState JoyX, JoyX
GetKeyState JoyY, JoyY
JoyX := (JoyX - 50)/50
JoyY := (JoyY - 50)/50
Angle := ATan(JoyX/JoyY)*2/3.14159
Angle := (JoyY > 0) ? Angle + 3: Angle + 1
Length := Sqrt(JoyX**2 + JoyY**2)
; 1 1 0
; 2 - 0
; 2 3 3
OldX = %HoldX%
OldY = %HoldY%
if Length > %Deadzone%
{
if % Angle >= 1.2 && Angle < 2.7
HoldX = a
else if % Angle >= 3.2 || Angle < 0.7
HoldX = d
else
HoldX =
if % Angle >= 0.3 && Angle < 1.7
HoldY = w
else if % Angle >= 2.3 && Angle < 3.7
HoldY = s
else
HoldY =
} else
{
HoldX =
HoldY =
}
SetKeyDelay -1
if OldX != %HoldX%
{
if HoldX
Send {%HoldX% down}
if OldX
Send {%OldX% up}
}
if OldY != %HoldY%
{
if HoldY
Send {%HoldY% down}
if OldY
Send {%OldY% up}
}
return
F10::ExitApp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment