154_Sergus Опубликовано: 17 сентября 2014 Опубликовано: 17 сентября 2014 спс конечно за подсказку, но дело было в переназначении осей.. сн маппер это такой маппер, всем мапперам маппер.
[IB]Zulu Опубликовано: 19 сентября 2014 Опубликовано: 19 сентября 2014 (изменено) Итак, я нашел способ как выкупить резисторы 295 серии. Пока у продавца есть лоты на 5 штук ($4,95) и на 10 штук ($13). Доставка по США 5$ за лот. Далее, будет доставка до моего адреса в России. Здесь предлагаю определиться. Можно примерно на 13 долларов - обычной почтой и очень долго (до 2-3 месяцев), можно поскорее, но это будет стоить 45-50 долларов (экспресс доставка 10-20 дней из практики) Пока трое желающих (я, джокер, беретта) заявили о желании приобрести 20 штук. Я попробую договориться с продавцом на лот в 20 штук (это позволит сократить почтовые расходы на множественные посылки) Пока от вас требуется сообщить каким способом будем доставлять до России. Лично мне - без разницы (могу и долгим, у меня пока ничего не шумит), могу и быстрым - 50 баксов на троих поделить не напрягает вовсе. ------ PS В качестве информации: Производитель (CTS) сообщили, что могут изготовить для нас хоть HP серию, хоть 295 - вопрос только в том, что заказ должен быть не менее чем на $1000 Изменено 19 сентября 2014 пользователем [I.B.]Zulu 1
=2ndSS=JOCKER Опубликовано: 19 сентября 2014 Опубликовано: 19 сентября 2014 Долгим ! Потерпим, пока работает всё. Тупо переплачивать. Тьфу,тьфу,тьфу. 295, они чем отличаются от НР-100 ?
[IB]Zulu Опубликовано: 19 сентября 2014 Опубликовано: 19 сентября 2014 Долгим ! Потерпим, пока работает всё. Тупо переплачивать. Тьфу,тьфу,тьфу. 295, они чем отличаются от НР-100 ? http://forum.il2sturmovik.ru/topic/988-programmirovanie-dzhojstikov-ch-products/?p=198167
beretta5 Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 Zulu' timestamp='1411150014' post='201283'] Пока от вас требуется сообщить каким способом будем доставлять до России. Лично мне - без разницы (могу и долгим, у меня пока ничего не шумит), могу и быстрым - 50 баксов на троих поделить не напрягает вовсе. Я отписался в личку Если нужно будет,могу взять побольше резисторов.К примеру не 7 а 10 штук.
154_Sergus Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 мужики, сорри, но не понятна конечная стоимость и кто будет рассылать по России?
=2ndSS=JOCKER Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 (изменено) PS В качестве информации: Производитель (CTS) сообщили, что могут изготовить для нас хоть HP серию, хоть 295 - вопрос только в том, что заказ должен быть не менее чем на $1000 Если бы уточнить количество желающих, то набрались бы. В Тундре на форуме отписать, на форумах Ил-2 + тут ещё. Думаю реально набрать людей на эту сумму. Изменено 20 сентября 2014 пользователем =2ndSS=JOCKER
=AD=uumembwa Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 Zulu' timestamp='1411150014' post='201283'] Можно примерно на 13 долларов - обычной почтой и очень долго (до 2-3 месяцев), Это они что по полкило весят, резисторы? Что за дикие цены и сроки, до 100гр доставка стоит 5$, и идет 2 недели.
beretta5 Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 Я так мыслю надо отдельную тему замутить про резисторы
[IB]Zulu Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 (изменено) Не.... судя по таким заявлениям http://forum.il2sturmovik.ru/topic/988-programmirovanie-dzhojstikov-ch-products/?p=201553 у меня не получится вам помочь, - эт я потом всю жизнь буду оправдываться за дикий перерасход в 240 рублей, и разбираться с претензиями.. Чета меня эта перспектива не радует. И мне этот гемор и возня с перепиской нафик не нужен, а тем паче две сотни рублей. Что бы вы себя спокойно чувствовали, и я не имел возможности незаконно присвоить ваши кровные предлагаю решить каждому свою проблему самостоятельно, а Пимпочке возрадоваться за предотвращение возможного обкрадывания граждан. В качестве подсказки предлагаю купить пересылочный адрес в США для этих резисторов и пользоваться им - при этом у вас будет полный контроль за движением единичных долларов и десятков рублей. ----------------------- Спасибо. Я без обид. Просто я действительно не хочу этим заниматься. Я то для себя вопрос уже решил. Изменено 20 сентября 2014 пользователем [I.B.]Zulu
beretta5 Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 Zulu' timestamp='1411206498' post='201635'] Не.... судя по таким заявлениям http://forum.il2stur...ducts/?p=201553 у меня не получится вам помочь, - эт я потом всю жизнь буду оправдываться за дикий перерасход в 240 рублей, и разбираться с претензиями.. Чета меня эта перспектива не радует. И мне этот гемор и возня с перепиской нафик не нужен, а тем паче две сотни рублей. Да ладна не обращай внимания.Давай отдельную тему откроем.Тот кто в оппозиции,не устраивают цены и т. д. пущай не суются.
=AD=uumembwa Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 Не.... судя по таким заявлениям http://forum.il2sturmovik.ru/topic/988-programmirovanie-dzhojstikov-ch-products/?p=201553 у меня не получится вам помочь, - эт я потом всю жизнь буду оправдываться за дикий перерасход в 240 рублей, и разбираться с претензиями.. Чета меня эта перспектива не радует. И мне этот гемор и возня с перепиской нафик не нужен, а тем паче две сотни рублей. Что бы вы себя спокойно чувствовали, и я не имел возможности незаконно присвоить ваши кровные предлагаю решить каждому свою проблему самостоятельно, а Пимпочке возрадоваться за предотвращение возможного обкрадывания граждан. В качестве подсказки предлагаю купить пересылочный адрес в США для этих резисторов и пользоваться им - при этом у вас будет полный контроль за движением единичных долларов и десятков рублей. ----------------------- Спасибо. Я без обид. Просто я действительно не хочу этим заниматься. Я то для себя вопрос уже решил. Что за истерика, речь про продавца же. Ну идет то оно канеш как повезет, но не 2-3 месяца. 2-3 недели.
[IB]Zulu Опубликовано: 20 сентября 2014 Опубликовано: 20 сентября 2014 (изменено) Да ладна не обращай внимания.Давай отдельную тему откроем.Тот кто в оппозиции,не устраивают цены и т. д. пущай не суются. Не, их не победишь, их много. Что за истерика, речь про продавца же. Вот иди его найди и с ним и бодайся, раз такой умный А вообще, ты прав. Дело это неблагодарное. Тем более с почтой. Мне вон с Англии посылка 6 месяцев шла. И я бы очень хотел, что бы в закупке на эти резисторы участвовали такие подкованные и ответственные люди как ты. С тобой все ускорится в разы и диких денег не заплатим. Возьмись как ты за организацию процесса, раз тебя сюда что то привело. -------------- И вообще это уже жутчайший оффтоп. 2 Moderators - почистите ветку плиз. Оставьте только программирование. Изменено 20 сентября 2014 пользователем [I.B.]Zulu
=59=Moroka Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 (изменено) ...а теперь немного по теме топика ... Просьба поделиться Вашими соображениями на тему КАК ВЫ РЕАЛИЗУЕТЕ: 1. Короткое и долгое нажатие для одной кнопки? 2. Двойной и одинарный "клик" для одной кнопки? ... интересны наработки... Изменено 26 сентября 2014 пользователем =J13=Moroka
NobbyNobbs Опубликовано: 26 сентября 2014 Автор Опубликовано: 26 сентября 2014 2. Двойной и одинарный "клик" для одной кнопки? Полистайте тему, Зулу точно постил про включение даблкликом форсажа на Лавке. Вообще он про таймеры много писал, там пищу для размышлений о коротком/долгом нажатии можно найти наверное. зы. купил задешево Файтерстик на замену Комбатстику, подключил... Теперь все что нажито непосильным трудом переписывать надо.
=59=Moroka Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 (изменено) Да, я помню у Zulu... интересно и познавательно, "узнал много новых слов" ... ещё хочу зы. купил задешево Файтерстик на замену Комбатстику, подключил... Теперь все что нажито непосильным трудом переписывать надо. ...Сочувствую Тем не менее, когда перепишете расскажите, каково с кнопок переходить на хатки... это я к том, что в свое время была возможность выбрать между комбат и файтер версиями. И тогда именно недостаток кнопок на последнем определил выбор... Изменено 26 сентября 2014 пользователем =J13=Moroka
beretta5 Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 ...а теперь немного по теме топика ... Да уж Ну что таки не у кого нет скрипта сглаживания осей?
=59=Moroka Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 (изменено) Да уж Ну что таки не у кого нет скрипта сглаживания осей? Есть такая партия... такой скрипт!... Только его Terror зажал , ...хотя и анонсировал 4-м пунктом в свое сообщении. Так что надо его попытать на эту тему... И ещё спрашивал я как-то у него про подруливание, про которое он там же упоминал. Но видно затерялся вопрос... Изменено 26 сентября 2014 пользователем =J13=Moroka
[IB]Zulu Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 (изменено) Принцип детектирования двойного движения РУД в макс. положении (ака Дабл клик РУДом) По аналогии переделывается под кнопки. Для кнопок даже легче, ибо второй таймер уже не нужен, имхо ---------------------------- // Определения %DEFINE MAXTHRTL1 D10 // Флаг контрольного интервала времени для ожидания движения рудом вниз %DEFINE MAXTHRTL1 D11 // Флаг контрольного интервала времени сек для ожидания второго достижения рудом макс // Тело TIMER (PERIOD,MAXTHRTL1,8) = [JS2.A3 <=3] AND NOT MAXTHRTL1; // Выставляем флаг ожидания MAXTHRTL1 на время 0,4 сек при достижении РУДа максимального положения (<=3) // Что бы исключить повторное срабатываени таймера в период охранного интервала делаем // проверку на самого себя: ' AND NOT MAXTHRTL1' TIMER (PERIOD,MAXTHRTL2,8) = [JS2.A3 > 7] AND MAXTHRTL1; // Выставляем флаг ожидания MAXTHRTL2 на время 0,4 сек при условии что РУД двинулся вниз за время 1-го контрольного интервал PULSE(D9) = [JS2.A3 <= 3] AND MAXTHRTL2; // Если РУД снова в макс то Дабл клик РУДом зафиксирован. Даем коротки сигнальный импульс D9 SEQUENCE WAIT(D9); // Реализуем что хочем по наличию сигнальног импульса D9 bla bla bla - Делаем что хотим ENDSEQUENCE Примечание: 1) Скрипт расчитан на стандартный ход осей (Макс тяги - 0, Мин тяги - 255) 2) Ось РУД по скрипту JS2.A3 Изменено 26 сентября 2014 пользователем [I.B.]Zulu 1
[IB]Zulu Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 (изменено) Детектирование долгого нажатия вообще простейшая операция в CH - в одну строку. Для этого применим Таймер типа ONDELAY. TIMER (ONDELAY, D1, 30) = (JS4.B3 OR JS4.B4); - при удерживании любой из кнопок B3 или B4 более 1,5 сек (30*50ms = 1,5 s) - битовый флаг D1 устанавливается в TRUE. Как только кнопка отпускается флаг D1 тоже сбрасывается. Изменено 26 сентября 2014 пользователем [I.B.]Zulu
=59=Moroka Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 (изменено) ...ага, это тот самый форсаж!.. Тут по двойному "клику" срабатывает последовательность запускаемая по d9. А что по одинарному нажатию?... тогда надо усложнять... Хочется "разруливать" сценарий по одинарному или по двойному "клику" ... про долгое нажатие пока не разобрался.. Я хочу, чтобы при кортком нажатии выполнялась одна последовательность, а при длительном нажатии той же кнопки выполнялась другая..., а та "одна" не выполнялась Изменено 26 сентября 2014 пользователем =J13=Moroka
[IB]Zulu Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 (изменено) Дык так и будет. Уже сейчас. Их без особой доработки можно объединить Пожалуйста. Детектирование дабл клика и долгого нажатия на JS2.B1 // Определения %DEFINE MAXTHRTL1 D10 // Флаг контрольного интервала времени для ожидания ОТЖАТИЯ КНОПКИ %DEFINE MAXTHRTL1 D11 // Флаг контрольного интервала времени сек для ожидания второго НАЖАТИЯ КНОПКИ %DEFINE LONGPRESS D13 // Флаг детектирования долгого нажатия // Тело для дабл клик TIMER (PERIOD,MAXTHRTL1,8) = JS2.B1 AND NOT MAXTHRTL1; TIMER (PERIOD,MAXTHRTL2,8) = NOT JS2.B1 AND MAXTHRTL1; SEQUENCE WAIT(JS2.B1 AND MAXTHRTL2); bla bla bla - Делаем что хотим при дабл клике JS2.B1 ENDSEQUENCE // Тело для длинного нажатия TIMER (ONDELAY, LONGPRESS, 30) = JS2.B1 AND NOT MAXTHRTL2; SEQUENCE WAIT(LONGPRESS); bla bla bla - Делаем что хотим при долгом нажатии JS2.B1 ENDSEQUENCE PS. скрипт задействует кнопулю №1 на джое №2 (JS2.B1) Изменено 26 сентября 2014 пользователем [I.B.]Zulu 1
=59=Moroka Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 Отлично, dbl и long работает! Спасибо! Осталось обработать простое нажатие. Без dbl и long...
[IB]Zulu Опубликовано: 26 сентября 2014 Опубликовано: 26 сентября 2014 (изменено) Отлично, dbl и long работает! Спасибо! Осталось обработать простое нажатие. Без dbl и long... Добавь в каждую из веток, перед bla bla bla импульс который будет блокирующим для обычного срабатывания кнопки. PULSE (D1) = TRUE; - это очень короткий одноразовый импульс, действующий только в течение одного цикла сканирования. А в конце скрипта запрети при его наличии чего либо делать. Напр. IF (D1) THEN CMS.B15 = FALSE; ELSE CMS.B15 = JS2.B1 - сюда все, что по обычному нажатию ENDIF Таким образом Если будет зафиксировано dbl или long то обработка обычного нажатия не состоится. И наоборот, при отсутствии первых двух, нажатие кнопки JS2.B1 будет обработано обычным образом, и ёё значение будет присвоено СMS Можно, кстати dbl детектировать через счетчик, тогда можно обработать хоть двойной, хоть тройной клик.. А long тоже разделить на короткий лонг, до секунды, и длинный до 2 секунд, например ЗЫ Ну и раз у тебя все заработало, значит в примере, приведенном в сообщении №303 ты нашел одну ошибку Гы, гы, Молодец. Я ее сам только сейчас увидел. Изменено 26 сентября 2014 пользователем [I.B.]Zulu 1
[IB]Zulu Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 (изменено) Вот варинат детектирования даблов, триплов и т.д. В примере трипл - тройной клик () TIMER(PERIOD,GUARDTIME,18) = JS1.B1; IF (NOT GUARDTIME) THEN Counter = 0; ENDIF SEQUENCE WAIT(GUARDTIME AND JS1.B1); Counter = Counter +1; ENDSEQUENCE IF ([Counter == 3] OR STARTED) THEN // счетчик до 3 (можно поставить любое число) SEQUENCE STARTED = TRUE; ........ bla bla bla - делаем что нужнжо STARTED = FALSE; ENDSEQUENCE Примечание: GUARDTIME - обявить типом D, Counter - объявить как аналогую переменную типа A, STARTED - объявить типом B - она нужна для сохранения пробега по Sequence в том, случае если Sequence будет иметь операторы Delay() и окажется продолжительнее GUARDTIME. Иначе не требуется. Изменено 27 сентября 2014 пользователем [I.B.]Zulu 1
NobbyNobbs Опубликовано: 27 сентября 2014 Автор Опубликовано: 27 сентября 2014 когда перепишете расскажите, каково с кнопок переходить на хатки... это я к том, что в свое время была возможность выбрать между комбат и файтер версиями. И тогда именно недостаток кнопок на последнем определил выбор... Единственное неудобство с которым я столкнулся это стрельба из пушек. Всегда назначал на курок пулеметы, а на кнопку под большим пальцем пушки. Тут назначил также и вчера поначалу пытался "нажимать" на хатку вниз, меня даже убили за это пару раз Но человек привыкает ко всему, сейчас уже гораздо лучше. А еще я кнопку, что справа на джойстике под указательным пальцем раньше использовал чтобы включать/выключать ХУД, карту, приборы (с двойным шифтом), а тут она переключает режимы. Все время ее по привычке нажимаю, летаю с цветомузыкой Кстати, глядя на эти лампочки поймал себя на мысли сделать больше режимов, хороших и разных. Раньше я использовал два режима на про-троттл: ВВС и Люфты, а теперь с помощью комбинаций переменных FTRSTKMODE and PROTHRMODE можно сделать для каждой стороны несколько режимов. Только гложет меня сомнение - оно вообще надо или это уже "излишества всякие нехорошие" 1
[IB]Zulu Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 А еще я кнопку, что справа на джойстике под указательным пальцем раньше использовал чтобы включать/выключать ХУД, карту, приборы (с двойным шифтом), а тут она переключает режимы. Все время ее по привычке нажимаю, летаю с цветомузыкой А ты ее запрети в GUI указав на другой девайс, например
NobbyNobbs Опубликовано: 27 сентября 2014 Автор Опубликовано: 27 сентября 2014 А ты ее запрети в GUI указав на другой девайс, например GUI mode control.gif спасибо за совет, у меня там вообще none выбрано
[IB]Zulu Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 (изменено) спасибо за совет, у меня там вообще none выбрано Вот и берет с того, что сама решит. У тебя на файтер попало Можешь, Кстати, в ГУИ указать, что режимы через скрипт, тогда для Mode можно будет назначить вообще, что захочешь, а умолчальные хардварные высвободятся Изменено 27 сентября 2014 пользователем [I.B.]Zulu
NobbyNobbs Опубликовано: 27 сентября 2014 Автор Опубликовано: 27 сентября 2014 Вот и берет с того, что самой вздумается У тебя на файтер попало неа, похоже при none вообще не берет - я значение CURRENTMODE принудительно в скрипте назначаю. а лампочки своей жизнью живут. sequence // js2 это ProThrottle wait(js2.b1); currentmode=1; wait(js2.b1); currentmode=2; wait(js2.b1); currentmode=0; endsequence
[IB]Zulu Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 Странно. За сменой CURRENTMODE должны следовать лампочки. У меня так. Хм... А Попробуй выставить Mode Control в GUI в режим CMS
Maxyman Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 Лампочки привязаны к штатному переключателю режимов.
[IB]Zulu Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 (изменено) Лампочки привязаны к штатному переключателю режимов. Ясно. Тогда, самое удобное, это перенести управление Режимом на ThrottlePro - там нажатием на микростик по центру переключается. Никогда не мешает и случайно не включишь ни за что Изменено 27 сентября 2014 пользователем [I.B.]Zulu
=59=Moroka Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 (изменено) ZULU наконец-то дошло как работает первый скрипт ... У тебя там тонко и хитро всё! Не сразу разобрался, хотя заработало сразу Однако, надо иметь ввиду, что если сейчас после второго клика продолжить жать кнопку, то сработает "долгое нажатие". Хотя это не критично... Добавь в каждую из веток, перед bla bla bla импульс который будет блокирующим для обычного срабатывания кнопки. PULSE (D1) = TRUE; - это очень короткий одноразовый импульс, действующий только в течение одного цикла сканирования. А в конце скрипта запрети при его наличии чего либо делать.... а вот здесь не разобрался... , с PULSom не заработало Буду разбираться дольше... П.С. ... трипл ещё не пробовал ... вернее не пробовал в "полном объеме", когда распознаются 1,2 и 3 нажатия... ЗЫ Ну и раз у тебя все заработало, значит в примере, приведенном в сообщении №303 ты нашел одну ошибку Гы, гы, Молодец. Я ее сам только сейчас увидел. После того как Terror выложил свое триммирование без 8 строк кода и потерянной одной скобкой в секции %DEFINE, которая обнаруживается как ошибка чуть-ли не в конце скрипта (так её и не поправил) мои навыки обнаружения мелких ошибок заметно улучшились Изменено 27 сентября 2014 пользователем =J13=Moroka
=59=Moroka Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 (изменено) sequence // js2 это ProThrottle wait(js2.b1); currentmode=1; wait(js2.b1); currentmode=2; wait(js2.b1); currentmode=0; endsequence Опс! Спасибо напомнил мне о такой возможности обработки в seguence последовательности... я и забыл про неё... ! Изменено 27 сентября 2014 пользователем =J13=Moroka
[IB]Zulu Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 (изменено) а вот здесь не разобрался... , с PULSom не заработало Буду разбираться дольше... Пардон. Не сработает... Это я погорячился. Дело в том, что любой дабл состоит из двух одиночных. Так что уже априори, в чистом виде на одиночный надо вешать, что либо безобидное, что не помешает, тому, что вызывается по даблу. Лонгпресс на одиночный прямого влияния не имеет. Однако опять же. Если мы чего то на одиночный повесили (при нажатии), то при лонгпрессе в этом случае сработает сначала одиночный а уже затем - лонгпресс. Отсюда, вывод, либо на одиночный ничего не вешать, либо детектировать одиночный по факту Отжатия кнопки, а не нажатия. В этом случае елси отжатие произошло ранее ЛонгПресса, то распознаем одиночный клик. В общем именно так работают на айподах кнопки - по отжатию. Именно по этой причине. Изменено 27 сентября 2014 пользователем [I.B.]Zulu
NobbyNobbs Опубликовано: 27 сентября 2014 Автор Опубликовано: 27 сентября 2014 А что если стоя в гамаке и в противогазе? Механизьм таймингов почерпнут из скрипта Зулу для закрылок Ла и Лагг. Правда пока писал немножко запутался, поэтому там точно что-то не совсем правильно работает, и, вероятно, (~99,9%) есть лишние (ненужные, дублирующиеся) действия. Но при всем при этом работает эта белиберда вполне удовлетворительно. Файл с картой для ProThrottle прикрепляю. Издевался над B13 (четырехпозиционная хатка под большим пальцем вправо). %define Pushtiming a1; %define ReleaseTiming a3; %define CheckTime a2; %define FirstPush b1; //флаг, истина если первое нажатие состоялось %define SecondPush b2;//флаг, истина если второе нажатие состоялось %define LongPush b3; script PULSE (d1) = JS1.B13 and !FirstPush; //слизано у Зулу, генерирует короткий импульс при первом нажатии кнопки pulse (d2)=!JS1.B13 and FirstPush;//отпустили кнопку после первого нажатия, сгенерировали импульс if (d1) then //если первое нажатие кнопки то фиксируем время нажатия и ставим флаг CheckTime=TIMESTAMP; FirstPush=true; endif if (d2) then //если отпустили кнопку обнуляем время нажатия и ставим новую метку PushTiming=0; CheckTime=TIMESTAMP; endif sequence while (js1.b13 and !SecondPush); //для первого нажатия PushTiming=PushTiming + TIMESTAMP-CheckTime; //пока нажата кнопка считаем сколько прошло времени endsequence sequence while (!js1.b13 and FirstPush); ReleaseTiming=ReleaseTiming + TIMESTAMP-CheckTime; //считаем сколько прошло времени между нажатиями endsequence sequence //если за 4000 тактов не дождались второго нажатия wait(FirstPush and [ReleaseTiming>4000] and !SecondPush); //генерируем нажатие кнопки cms.b3 cms.b3=true; //и обнуляем всю эту хрень (ы. 4000 тактов это многовато) delay(20); cms.b3=false; FirstPush=false; ReleaseTiming=0; endsequence if ([ReleaseTiming>0]and[ReleaseTiming<4000] and js1.b13) then //если дождались второго нажатия, ставим флаг SecondPush=true; cms.b2=js1.b13; endif sequence wait(SecondPush and !js1.b13); //чтобы при отпускании кнопки джоя cms.b2 не осталась true навсегда cms.b2=false; //сопоставляем флаг второго нажатия и кнопку ReleaseTiming=0; //при отпускании кнопки джоя все обнуляем FirstPush=false; SecondPush=false; endsequence if ([PushTiming>9999]) then //при длительном нажати на кнопку cms.b1=js1.b13; //срабатывает cms.b1 и устанавливается соответствующий флаг LongPush=true; endif sequence //тут все аналогично двойному нажатию wait(!js1.b13 and LongPush); PushTiming=0; LongPush=false; FirstPush=false; SecondPush=false; cms.b1=false; endsequence endScript DblClick.zip 2
72AG_terror Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 (изменено) Просили подруливание и сглаживание, говорите? Сорри, не заметил. Вот подруливание. Тут всё очень просто: при отклонении крестовой хатки от соответствующей оси отнимается фиксированное значение или прибавляется. Так достигаем отклонения оси пока нажата хатка. Удобно при полёте строем для плавного ввода в манёвр с фиксированной (удобнее для ведомого) скоростью (ручка всё время отклонена на фиксированное значение). %DEFINE J_Stick_X JS2.A1 // Физическая ось джойстика - Х %DEFINE J_Stick_Y JS2.A2 // Физическая ось джойстика - Y %DEFINE C_Stick_X CMS.A1 // Выводимая ось джойстика - X %DEFINE C_Stick_Y CMS.A2 // Выводимая ось джойстика - Y %DEFINE J_Mini_Stick_Nose_Up ( JS2.B5 ) // Кнопка "нос вверх" (крестовая хатка на РУСе вниз - "на себя") %DEFINE J_Mini_Stick_Nose_Down ( JS2.B7 ) // Нос вниз %DEFINE J_Mini_Stick_Bank_Left ( JS2.B8 ) // Крен влево %DEFINE J_Mini_Stick_Bank_Right ( JS2.B6 ) // Крен вправо %DEFINE J_Mini_Stick_Center ( JS2.B23 ) // Хатка в центре -- такая, типа, кнопка есть у каждой хатки. // Эти кнопки "нажаты" всё время, пока соответсвующая им хатка в центре. // Список такой: Хатка 1 - B21, 2 - B22, 3 - B23 4 - B24 %DEFINE Shift JS3.B2 // Кнопка шифт -- с шифтом мы будем подруливать "грубо", без него -- плавно %DEFINE CONST_Mini_Stick_Fine 15 // Собственно насколько надо отклонить ось при "плавном" подруливании %DEFINE CONST_Mini_Stick_Coarse 30 // и при грубом script // Понеслась if ( J_Mini_Stick_Center ) then // Хатка в центре, просто транслируем оси напрямую. Это надо, чтобы "отменить" действие хатки, возвращённой в центр C_Stick_X = J_Stick_X; // Тут надо обратить внимание, что 8-позиц. хатка может и не проходить через центр, когда её сдвигают в другое C_Stick_Y = J_Stick_Y; // положение, поэтому тут надо будет городить более сложную проверку. Но тут выбрана хатка 4-х позиционная и // при смене положения она всегда пройдёт через центр endif if ( J_Mini_Stick_Bank_Left AND NOT Shift ) then // Если хатка нажата "влево" и без шифта -- подруливаем крен плавно влево C_Stick_X = J_Stick_X - CONST_Mini_Stick_Fine ; // Отнимаем значение подруливания от значения оси и передаём endif if ( J_Mini_Stick_Bank_Left AND Shift ) then // То же, но с шифтом. "Грубое" подруливание. C_Stick_X = J_Stick_X - CONST_Mini_Stick_Coarse ; // Дальше всё аналогично endif if ( J_Mini_Stick_Bank_Right AND NOT Shift ) then C_Stick_X = J_Stick_X + CONST_Mini_Stick_Fine ; endif if ( J_Mini_Stick_Bank_Right AND Shift ) then C_Stick_X = J_Stick_X + CONST_Mini_Stick_Coarse ; endif if ( J_Mini_Stick_Nose_Up AND NOT Shift ) then C_Stick_Y = J_Stick_Y - CONST_Mini_Stick_Fine ; endif if ( J_Mini_Stick_Nose_Up AND Shift ) then C_Stick_Y = J_Stick_Y - CONST_Mini_Stick_Coarse ; endif if ( J_Mini_Stick_Nose_Down AND NOT Shift ) then C_Stick_Y = J_Stick_Y + CONST_Mini_Stick_Fine ; endif if ( J_Mini_Stick_Nose_Down AND Shift ) then C_Stick_Y = J_Stick_Y + CONST_Mini_Stick_Coarse ; endif endscript Сглаживание оси (я сглаживаю колёсико, у меня оно постоянно дрожит, особенно в центральных положениях) тоже запощиваю, но это не моё, а цельнотянутое с CH Hangar. Почему работает -- до сих пор не понимаю, поэтому не откомментированно пощу. Сначала я крутил свои алгоритмы, но они не работали, хорошо, вот этот подвернулся. Пощу только самую мякоту (без скрипт-ендскрипт и прочих define, должно быть понятно и так). if ( [ J_Stick_Z != C_Stick_Z ] ) then if ( [ ( J_Stick_Z + 1 ) > C_Stick_Z ] ) then C_Stick_Z = J_Stick_Z - 1; endif if ( [ ( J_Stick_Z - 1 ) < C_Stick_Z ] ) then C_Stick_Z = J_Stick_Z + 1; endif if ( [ J_Stick_Z == 255 ] ) then C_Stick_Z = 255; endif if ( [ J_Stick_Z == 0 ] ) then C_Stick_Z = 0; endif endif Изменено 27 сентября 2014 пользователем 72AG_terror 1
=59=Moroka Опубликовано: 27 сентября 2014 Опубликовано: 27 сентября 2014 (изменено) Спасибо, Nobby. Всё работает... Пугает только объем скрипта.... для 6 кнопок набежит Хотя вешать на одну кнопку и single и double и long - это через чур. Думаю придется обойтись только single (на отпускание) и long... 2Terror Спасибо, оперативно! Изменено 27 сентября 2014 пользователем =J13=Moroka
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас