Страница 1 из 1

Двойное нажатие клавиши

СообщениеДобавлено: 22 май 2017, 21:06
Rulz009
Добрый вечер.
Такая проблема. При одном нажатии SPACE игрок делает прыжок. При двойном нажатии SPACE (то есть быстро нажать дважды одну клавишу) он должен прыгнуть выше. Как можно это реализовать?

Другими словами (здесь, при нажатии SPACE переменной num присваивается значение 1):
if(Input.GetButtonDown("Jump")) {
num = 1;
}
Здесь, при нажатии SPACE и клавиши Z переменной num присваивается значение 1):
if(Input.GetButtonDown("Jump") && Input.GetKeyDown(Key.Code.F)) {
num = 1;
}
Как реализовать, что при двойном, последовательном (то есть быстро нажав дважды одну клавишу) нажатии SPACE, переменной присваивалось какое-либо значение?
if(Input.GetButtonDown("Jump") && ????) {
num = 1;
}
Надеюсь, объяснил понятно.

Re: Двойное нажатие клавиши

СообщениеДобавлено: 22 май 2017, 21:08
samana
Запоминайте время при нажатии проблема, а при следующем нажатии пробела проверьте - сколько времени прошло с предыдущего нажатия и если просто меньше заданного интервала, то значит произошел двойной прыжок. Для работы со временем посмотрите API по классу Time.

Re: Двойное нажатие клавиши

СообщениеДобавлено: 22 май 2017, 21:10
Valentinus
примерно так: каждый раз запоминаете время нажатия. а перед запоминанием проверяете период от предыдущего нажатия до текущего времени. если период мал, то это дабл-клик

Синтаксис:
Используется csharp
if (clickTime > 0)
if ((Time.realtimeSinceStartup - clickTime) < 0.3f) { // дабл клик
                // двойной прыжок
        }
clickTime = Time.realtimeSinceStartup;