所以在这个游戏中我用 WASD 键移动我的charachter,但是如果我同时按住 A 和 D 键时间, 游戏注册为向前移动( W 键 | )所以charachter开始向前移动而不是strafe动作(左)\(右) /
所以我需要一个能够同时阻止 A 和 D 键的代码。
CHECK THIS GIF, SO U CAN SEE WHAT I MEAN!
我希望 A 和 D 互相覆盖(我没有使用 W 键),因为如果我同时击中 A 和 D 同时我的角色向前移动,而不是像 \ / 我想避免前进的动作。
我想彻底改变快速左\和右 / 只扫描。
以下是我到目前为止的代码:
~a::
If (GetKeyState("d", "p"))
{
Send {d up}
d = 0
}
Return
~d::
If (GetKeyState("a", "p"))
{
Send {a up}
a = 0
}
Return
a up::
If (d)
{
Send {d down}
d = 0
}
Return
d up::
If (a)
{
Send {a down}
a = 0
}
Return
基本上这个代码几乎可以正常工作。
问题是如果我不改变数字我不能连续改变方向我需要放开键。它在1个方向改变后停止。如果我更改其工作的数字,但在几个方向改变后,它向左或向右切换。即使我让它向左或向右移动......
有什么想法吗? THX
答案 0 :(得分:2)
这应该有效。试试吧,让我知道。
$*a::
$*d::
SendInput, {a Up}{d Up}
StringReplace, hk, A_ThisHotkey, % "$*"
SendInput, {%hk% Down}
KeyWait, % hk
Send, {a Up}{d Up}
return
答案 1 :(得分:0)
编辑:您可以使用下面的代码。也许它会帮助你
#SingleInstance, force
#Persistent
#NoEnv
#MaxThreadsPerHotkey, 1
~a & d::
~d & a::
Send, {a up}
key := "d"
SetTimer, pressdown, 10
return
~d::key := "d"
~a::key := "a"
~a up::key := "d"
~d up::key := "a"
pressdown:
if GetKeyState(key, "p")
{
SendInput, {%key% down}
SetTimer, pressdown, 30
}
else {
SetTimer, pressdown, Off
SendInput, {%key% up}
}
return
此脚本不允许同时按下A或D.