Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Остановка кода по нажатию в Визуальном редакторе

Страниц (1): [1]
 

1. Kostick - 15 Января, 2022 - 11:45:20 - перейти к сообщению
Подскажите, с помощью какой команды сделать так, чтобы в любой момент при нажатии, например, на "q" код прекращал работу, а все остальное время делал что-то другое, например производил поиск какого-либо изображения (хотелось бы в визуальном редакторе, но и без него пойдет)?
Я понимаю, что это делается через if и getkeystate, но я так понимаю, это не в любой момент, а именно когда будет выполнятся функция if. Можно ли это сделать, например, через while?
2. Zireael - 15 Января, 2022 - 12:01:03 - перейти к сообщению
Использовать таймер.
CODE:
enabletimer(0);
loop()sleep(10);


CREATE_TIMER(0, 100)
{
if(getkeystate(81)) // если нажата q
{
while(getkeystate(81))sleep(10); // ждать пока нажата q
messagebox("Нужные действия");
}
}
3. Kostick - 17 Января, 2022 - 01:07:52 - перейти к сообщению
 Zireael пишет:
Использовать таймер.
CODE:
enabletimer(0);
loop()sleep(10);


CREATE_TIMER(0, 100)
{
if(getkeystate(81)) // если нажата q
{
while(getkeystate(81))sleep(10); // ждать пока нажата q
messagebox("Нужные действия");
}
}

Я, наверное, не так описал логику:
Как реализовать функцию остановки программы по нажатию какой-либо клавиши (в данном случае q)? Т.е. код работает, например, нажимает каждые 500 мс клавишу R, но если я нажму q, программа остановится (появится окно kibor).
Просто я не понял логику вашего кода.
(Добавление)
Точнее не смог повторить его в визуальном редакторе, чтоб можно было добавить свои действия дальше
4. Kibor - 17 Января, 2022 - 01:30:45 - перейти к сообщению
 Kostick пишет:
Точнее не смог повторить его в визуальном редакторе, чтоб можно было добавить свои действия дальше



Переход на метку и метка в разделе ПЕРЕХОД


Генерируемый код (Отобразить)
5. Kostick - 17 Января, 2022 - 01:45:03 - перейти к сообщению
 Kibor пишет:
 Kostick пишет:
Точнее не смог повторить его в визуальном редакторе, чтоб можно было добавить свои действия дальше



Переход на метку и метка в разделе ПЕРЕХОД


Генерируемый код (Отобразить)

Ух, это выглядело немного сложнее, чем я думал. Но да, все отлично работает, спасибо! А я могу в таймере поставить паузу не 200 мс, а 1 мс? Я же правильно понимаю, что это пауза между срабатываниями?
6. Kibor - 17 Января, 2022 - 01:48:05 - перейти к сообщению
 Kostick пишет:
А я могу в таймере поставить паузу не 200 мс, а 1 мс?

Можете. Но не стоит.
1 мс это тысячу раз в секунду.
Вполне хватит 5 раз в секунду проверять и не прерывать часто основной цикл.

Powered by ExBB FM 1.0 Final