Подскажите, с помощью какой команды сделать так, чтобы в любой момент при нажатии, например, на "q" код прекращал работу, а все остальное время делал что-то другое, например производил поиск какого-либо изображения (хотелось бы в визуальном редакторе, но и без него пойдет)?
Я понимаю, что это делается через if и getkeystate, но я так понимаю, это не в любой момент, а именно когда будет выполнятся функция if. Можно ли это сделать, например, через while?
1. Kostick - 15 Января, 2022 - 11:45:20 - перейти к сообщению
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("Нужные действия");
}
}
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("Нужные действия");
}
}
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 раз в секунду проверять и не прерывать часто основной цикл.