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

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

1. BigZee - 15 Июня, 2016 - 05:30:31 - перейти к сообщению
Спс за очень подробный гайд Улыбка)
"Список функций Кибор"
Я вот только не нашёл установка флагов (ну или булеан как в VB). Хотел узнать. Как можно нажимая на ту же кнопку G менять флаг с 0 на 1 и наоборот?
Пытался сделать так
CODE:

int i=1
if (key(85)==1){
if(i==1){
i=0
}else{i=1}
}

Но я понимаю что это не правильно хотя бы из за того что условия нажатия кнопки не может так вырожаться. Но так же не будет правильно сделать с помощью getkeystats так как оно будет менять значение быстро и пока кнопка нажата т.е. не факт что я на нажатие при i=0 попаду на i=1 оно может сменится 10-100 раз пока кнопка нажата. А вот как сделать что бы при именно нажал отпустил и оно сменилось 1 раз. Вот это вот не понял
Заранее спс!
2. Kibor - 15 Июня, 2016 - 05:47:32 - перейти к сообщению
 BigZee пишет:
Но так же не будет правильно сделать с помощью getkeystats так как оно будет менять значение быстро и пока кнопка нажата т.е

что мешает ждать пока отпустить

CODE:
int i=0;
textout(0, 200, 200, format(i), 0);

loop()
{


if (getkeystate(71)==1)// G
{
if(i==0)i=1;
else i=0;
textout(0, 200, 200, format(i), 0);
while (getkeystate(71)==1)sleep(10);
}

sleep(50);
}


так
3. BigZee - 15 Июня, 2016 - 05:55:39 - перейти к сообщению
Ого честно сказать не думал в таком русле. А просто смены с 0 на 1 и наоборот такого я понял нет?

Хотя меня конеш и это устраивает просто кода много. Спс за помощь
4. Kibor - 15 Июня, 2016 - 06:06:01 - перейти к сообщению
 BigZee пишет:
А просто смены с 0 на 1 и наоборот такого я понял нет?

на каждый такой вжик делать встроенную функцию...

 BigZee пишет:
просто кода много.

?
если использовать для одной кнопки не много..

если надо на каждую клавишу повесить то оформить в функцию и юзать.
опрашивать в таймере правильно.
CODE:
int g=0;
int a=0;

enabletimer(0);

loop()
{
textout(0, 200, 200, format(g), 0);
textout(1, 200, 250, format(a), 0);
sleep(50);
}







function flag(int k, int #f)
{
if (getkeystate(k)==1)
{
if(f==0)f=1;
else f=0;
while (getkeystate(k)==1)sleep(10);
}
}









CREATE_TIMER(0, 50)
{
flag(71, #g);// G
flag(65, #a);// A
}
5. BigZee - 15 Июня, 2016 - 06:37:13 - перейти к сообщению
ага логику понял конеш не совсем привычна в смысле того, что простую вещь приходится делать таким не стандартным способом. Но все же хорошо что можно Улыбка спс за содержательный ответ. Кстати если в будущем может когда нить будут вопросы по такому Catia 3d то обращайтесь Улыбка помогу
6. Kibor - 15 Июня, 2016 - 06:48:34 - перейти к сообщению
 BigZee пишет:
простую вещь приходится делать таким не стандартным способом

это минималистический язык. главный упор на другое, для чего заточен..
7. BigZee - 15 Июня, 2016 - 07:00:25 - перейти к сообщению
 Kibor пишет:
 BigZee пишет:
простую вещь приходится делать таким не стандартным способом

это минималистический язык. главный упор на другое, для чего заточен..

В смысле для создания автоматизации Улыбка я так понял. Ну добавить булеан значение думаю не лишне (хотя бы по тому что оно есть везде и уже привычно ну и кода меньше (строчки на 2)) Хорошо

Хотя вам виднее Закатив глазки

Powered by ExBB FM 1.0 Final