1 (изменено: arcan7777, 2014-07-02 21:13:14)

Тема: Одна кнопка джойстика зажимает 2 других

joy2::
SendInput, {vk30 down}{vk39 down}
Sleep, 100
SendInput, {vk30 up}{vk39 up}
return

При зажатии кнопки джойстика нажимает эту комбинацию много-много раз, а нужно именно зажатие. При отпускании кнопки джойстика сразу должны отпускаться и эти две. И важна возможность сразу же ее зажать снова.
Пол интернета перерыл, пробовал вкупе с ControlMK - ничего не помогает.
teadrinker, спасибо за ссылку

2 (изменено: Центурион, 2014-07-03 20:32:18)

Re: Одна кнопка джойстика зажимает 2 других

Я сам новичек, но мало ли вдруг сработает! Попробуй такой вариант!

joy2::
if GetKeyState("joy2", "P")
SendInput {vk30 down}{vk39 down}
KeyWait, joy2
SendInput {vk30 up}{vk39 up}
return

3

Re: Одна кнопка джойстика зажимает 2 других

К сожалению при зажиме кнопки она работает только 1 раз. Очень нужен hold

4 (изменено: Indomito, 2014-07-05 09:02:06)

Re: Одна кнопка джойстика зажимает 2 других

Как я понимаю тебе нужно нечто подобное

lUp:
    fUDLR := true
    Send, {Up Down}
   vBoostSpeed := 0
     while (GetKeyState("UP", "P"))
    {
      fKeyUpTimer:=true
      sleep %td20_Sleep%
        fnGearSpdBrk(cNoneParam, cFnSB_GT)
      if (fnGearSpdBrk(cNoneParam, cFnSB_Boost))
                continue
          else
            sleep %td20_Sleep% ; 10 ms
        }
     Send, {Up UP}
   fKeyUpTimer:=false
     fUDLR:=false
return

Если из фрагмента убрать лишнее, то получишь желаемое.

Пока нажата стрелка вверх делаем что то, когда её отпускаем делаем иное - ты это хочешь или что то другое?

P.S. Я тут запускаю серию таймеров и управляю их работой... просто было проще показать, чем писать то что ты хочешь, но фрагмент по сути то делает именно то, но это фрагмент большого скрипта - см мою тему про Saints Row: The Third

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AHK 1.1.30.01

5

Re: Одна кнопка джойстика зажимает 2 других

Центурион у тебя ошибка в том, что ты используешь KeyWait, а надо ждать пока нажата и когда отжата послать отжатие, а потом уж эмуляцию нажатия.
Делать это лучше в тегах #UseHook, On и #UseHook, Off - для гарантии, так как надо "самовызывание" делать (могу ошибаться).

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AHK 1.1.30.01

6

Re: Одна кнопка джойстика зажимает 2 других

В игре для выполнения приема нужно нажать две кнопки. Эти две кнопки могут быть как на клаве, так и на самом джойстике. Нужно забиндить их на 1 кнопку джойстика. При этом этот прием можно реализовать как сразу, так и с зарядкой (путем удержания кнопки джойстика) в течении 1-2 сек. Т.е. нужны все варианты, как с зарядкой так и без на одной клавиши джойстика.

7

Re: Одна кнопка джойстика зажимает 2 других

arcan7777 пишет:

В игре для выполнения приема нужно нажать две кнопки. Эти две кнопки могут быть как на клаве, так и на самом джойстике.

рекомендую реализовать просто вариант, а уж потом переходить к динамическому определению.
Или же ты хочешь готовый вариант?
Я его не смогу написать, т.к. не смогу протестировать - джойстика нету, могу реализовать, как - Удержание одной клавиши - Выдача двух других, при отжатии код отжатия двух других.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AHK 1.1.30.01