AlexSocol написал(а):Делаешь эвентхандлер, в нём таймер.
Если таймер равен нулю, по нужному клику сетишь таймер на 10 тиков, иначе отменяешь эвент;
алсо раз в тик декрементишь таймер.
Не тик эвент, а mouseinput event.RaDiC написал(а):AlexSocol написал(а):Делаешь эвентхандлер, в нём таймер.
Если таймер равен нулю, по нужному клику сетишь таймер на 10 тиков, иначе отменяешь эвент;
алсо раз в тик декрементишь таймер.
пробовал так, но с этим небольшой баг. И какой тик эвент в этом случаи использовать?
И еще, если завершить эвент клика то мышка больше кликать не станет)
Ivasik написал(а):Не тик эвент, а mouseinput event.RaDiC написал(а):AlexSocol написал(а):Делаешь эвентхандлер, в нём таймер.
Если таймер равен нулю, по нужному клику сетишь таймер на 10 тиков, иначе отменяешь эвент;
алсо раз в тик декрементишь таймер.
пробовал так, но с этим небольшой баг. И какой тик эвент в этом случаи использовать?
И еще, если завершить эвент клика то мышка больше кликать не станет)
RaDiC написал(а):Ivasik написал(а):Не тик эвент, а mouseinput event.RaDiC написал(а):AlexSocol написал(а):Делаешь эвентхандлер, в нём таймер.
Если таймер равен нулю, по нужному клику сетишь таймер на 10 тиков, иначе отменяешь эвент;
алсо раз в тик декрементишь таймер.
пробовал так, но с этим небольшой баг. И какой тик эвент в этом случаи использовать?
И еще, если завершить эвент клика то мышка больше кликать не станет)
тик эвент для того что бы считать количество кликов в секунду
Ivasik написал(а):RaDiC написал(а):Ivasik написал(а):Не тик эвент, а mouseinput event.RaDiC написал(а):AlexSocol написал(а):Делаешь эвентхандлер, в нём таймер.
Если таймер равен нулю, по нужному клику сетишь таймер на 10 тиков, иначе отменяешь эвент;
алсо раз в тик декрементишь таймер.
пробовал так, но с этим небольшой баг. И какой тик эвент в этом случаи использовать?
И еще, если завершить эвент клика то мышка больше кликать не станет)
тик эвент для того что бы считать количество кликов в секунду
Для таких целей есть mouseinput event, даешь переменную, при клике прибавляешь клики, если кликов == 2, то запускаешь таймер. И ещё, в одной секунде 20 тиков.
@SubscribeEvent
public void rightClick(MouseEvent event) {
if (event.button == 0) {
if (time == 0) time = 10;
else event.setCanceled(true);
}
}
@SubscribeEvent
public void tick(TickEvent.ClientTickEvent event) {
if (time > 0) time--;
}
RaDiC написал(а):Ха... точно, но один косяк остался, после остановки эвента, кликать я не могу, он просто кликает сам))
Как будто кнопка зажата
Ivasik написал(а):RaDiC написал(а):Ха... точно, но один косяк остался, после остановки эвента, кликать я не могу, он просто кликает сам))
Как будто кнопка зажата
Так ты после окончания таймера ставь false, и будет всё работать.
RaDiC написал(а):Ivasik написал(а):RaDiC написал(а):Ха... точно, но один косяк остался, после остановки эвента, кликать я не могу, он просто кликает сам))
Как будто кнопка зажата
Так ты после окончания таймера ставь false, и будет всё работать.
нет, не в этом дело, говорю же, уже работает, но после клика и остановки эвента я кликать не могу (как и нужно) но в игре такая ситуация будто она зажата. После чего таймер сбрасывается все нормально.
Ivasik написал(а):RaDiC написал(а):Ivasik написал(а):RaDiC написал(а):Ха... точно, но один косяк остался, после остановки эвента, кликать я не могу, он просто кликает сам))
Как будто кнопка зажата
Так ты после окончания таймера ставь false, и будет всё работать.
нет, не в этом дело, говорю же, уже работает, но после клика и остановки эвента я кликать не могу (как и нужно) но в игре такая ситуация будто она зажата. После чего таймер сбрасывается все нормально.
Ну так естественно работает, но тебе нужно ещё и возвращать событие в исходное положение, setCanceled = false;
RaDiC написал(а):Ivasik написал(а):RaDiC написал(а):Ivasik написал(а):RaDiC написал(а):Ха... точно, но один косяк остался, после остановки эвента, кликать я не могу, он просто кликает сам))
Как будто кнопка зажата
Так ты после окончания таймера ставь false, и будет всё работать.
нет, не в этом дело, говорю же, уже работает, но после клика и остановки эвента я кликать не могу (как и нужно) но в игре такая ситуация будто она зажата. После чего таймер сбрасывается все нормально.
Ну так естественно работает, но тебе нужно ещё и возвращать событие в исходное положение, setCanceled = false;
не помогает
@SubscribeEvent
public void rightClick(MouseEvent event) {
if (event.button == 0) {
if (time == 0) time = 500;
else event.setCanceled(true);
}
}
@SubscribeEvent
public void tick(TickEvent.ClientTickEvent event) {
if (time > 0) time--;
}
Эм,RaDiC написал(а):Код:@SubscribeEvent public void rightClick(MouseEvent event) { if (event.button == 0) { if (time == 0) time = 500; else event.setCanceled(true); } } @SubscribeEvent public void tick(TickEvent.ClientTickEvent event) { if (time > 0) time--; }
Ivasik написал(а):Эм,RaDiC написал(а):Код:@SubscribeEvent public void rightClick(MouseEvent event) { if (event.button == 0) { if (time == 0) time = 500; else event.setCanceled(true); } } @SubscribeEvent public void tick(TickEvent.ClientTickEvent event) { if (time > 0) time--; }
if (time == 0)
{
event.setCanceled(false);
time = 500;
}