![]() |
Взаимное исключение событий мышки
Всем привет.
Если кто-то встречался со подобным подскажите: есть две переменные, которые отслеживают зажата ли ЛКМ или просто сделан клик мышкой. Как можно взаимно исключить эти два события, чтобы признак зажатой кнопки проставлялся только после какого-то интервала что-ли? То есть приоритет был у одиночного щелчка. |
А может проще в таком случае было бы реагировать на "отпускание" мышки? Просто у всех мышек и людей разные настройки / привычки. Вы на всех одинаковым интервалом не угодите.
|
Если на отпускание мышки, то получится двойное срабатывание, то есть сначала будет признак что мышка зажата, а потом сразу еще и признак что просто нажата кнопка. Либо опять же надо какое-то рациональное время вводить, сколько прошло между зажатой и отжатой кнопкой. Наверное лучше будет ввести счетчик, который будет отвечать за количество тиков пройденных между зажатием и отпусканием кнопки мышки.
|
Если, к примеру, взять эппловский UILongPressGestureRecognizer, то там эта самая задержка по-умолчанию равна 0.5 секунды.
Вам зачем вообще это всё? |
Нет, вы не поняли. Одно событие происходит когда мышку отпускают, другое - когда нажимают. Нет двух событий, просто "клик" будет срабатывать когда мышку оптустили, а не нажали.
|
Может заменить прослушивание события CLICK на DOUBLE_CLICK? Оно, вроде, для таких вот случаев.
|
Зачем это все надо: пишу небольшую стрелялку, необходимо, чтобы объекты вылетали через одинаковый интервал времени, независимо от количества и вариантов нажатия мышки, то есть у персонажа есть некий стат, который отвечает за скорость стрельбы, его можно уменьшать либо увеличивать. Сейчас более мене вроде добился стабильности, но все равно что-то не так.
|
Выстрел -> перезарядка -> выстрел -> ...
Варьируется только время перезарядки. И не будет зависеть от скорости кликов. |
Можно ли использовать setTimeout для таких случаев, так как пуля должна вылетать только на втором кадре анимации персонажа? Само собой скорость анимации зависит от количества ударов в секунду.
|
Зачем? Паузу не замучаетесь реализовывать? На каждый игровой тик проверяйте закончилась ли перезарядка.
|
| Часовой пояс GMT +4, время: 16:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.