Author Topic: IF (KEYDOWN(#ctrl)=1)  (Read 3872 times)

0 Members and 1 Guest are viewing this topic.

SanteR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
IF (KEYDOWN(#ctrl)=1)
« on: December 20, 2014, 01:47:05 PM »
Добрый день, подскажите как использовать правильно данную конструкцию -
IF (KEYDOWN(#CTRL)=1)
.......
ELSE
IF(KEYUP(#CTRL)=1)
......
Мне нужно проверить по условию нажата ли клавиши CTRL (например) и если она нажата выполнить действия и в тот момент когда клавишу отпустить, выполнить другие действия.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: IF (KEYDOWN(#ctrl)=1)
« Reply #1 on: December 20, 2014, 01:55:52 PM »
Никак не правильно!
Функция ISKEYDOWN(#CTRL) возвращает при обращении 1 если зажата клавиша, и 0 если отпущена.

Code: (clickermann) [Select]
IF(ISKEYDOWN(#CTRL)=1)
   // действия если зажат CTRL
END_IF

WHILE(ISKEYDOWN(#CTRL)=1) // цикл крутится и не пускает выполнение пока зажат CTRL
   WAITMS(20)
END_CYC

SanteR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: IF (KEYDOWN(#ctrl)=1)
« Reply #2 on: December 20, 2014, 04:07:36 PM »
и 0 если отпущена.
Вот не срабатывает с 0 если отпущена

SanteR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: IF (KEYDOWN(#ctrl)=1)
« Reply #3 on: December 20, 2014, 04:28:26 PM »
а как можно узнать тогда что клавиша была опущена?

SanteR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: IF (KEYDOWN(#ctrl)=1)
« Reply #4 on: December 20, 2014, 04:49:44 PM »
да, нажимаю руками, суть такая когда нажимаю CTRL и не отпускаю ее, появляется мышка и мне мышку нужно переместить в определенное место экрана, затем там уже управляя "мышкой" выбрать нужное место и кликнуть после чего нужно отпустить CTRL и что бы курсор мышки остался на середине и я дальше мог им управлять "мышкой"

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: IF (KEYDOWN(#ctrl)=1)
« Reply #5 on: December 20, 2014, 05:01:07 PM »
А кликер то тебе зачем, раз ты все руками делаешь?

SanteR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: IF (KEYDOWN(#ctrl)=1)
« Reply #6 on: December 20, 2014, 05:27:58 PM »
нужно для быстроты, что бы когда нажал ctrl мышка почти сместилась в угол экрана, там я выбираю мышкой кнопку в зависимости от надобности, отпускаю ctrl и она возвращается на середину. вот так нужно сделать

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: IF (KEYDOWN(#ctrl)=1)
« Reply #7 on: December 20, 2014, 05:39:49 PM »
Ну вот, хоть к пятому посту удалось из тебя осмысленный алгоритм выжать  8)

Вот то, что ты так хотел.

Code: (clickermann) [Select]
IF(ISKEYDOWN(#CTRL)=1)
   MOVE(95,144) // перемещаем мышь в угол (напиши свою координату)
   
   WHILE(ISKEYDOWN(#CTRL)=1) // цикл крутится и не пускает выполнение пока зажат CTRL
      WAITMS(20)
   END_CYC
   
   MOVE(INT($_xmax/2),INT($_ymax/2)) // возвращаем в центр экрана (авто)
   WAITMS(100)
ELSE
   WAITMS(20)
END_IF

SanteR

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Re: IF (KEYDOWN(#ctrl)=1)
« Reply #8 on: December 20, 2014, 06:53:25 PM »
2 Oraven
Спасибо, твой вариант работает, немного задержки подправил!
Спасибо!