Mafaze Posted January 24, 2014 Share Posted January 24, 2014 Извиняюсь за тупой вопрос, только начинаю. Мне нужно сделать так, чтобы забинденную кнопку можно было нажать только 1 раз в 5 секунд. Либо чтобы функция, которая использует эту кнопку работала только раз в 5 секунд. Т.е. если игрок нажимает кнопку много раз, чтобы функция не активировалась. Link to comment
AMARANT Posted January 24, 2014 Share Posted January 24, 2014 MYBUTTON = "z" DELAY = 5 PRESSED = false function myFunction() if not PRESSED then PRESSED = true outputChatBox("The button was pressed.") setTimer(function() PRESSED = false end,DELAY*1000,1) end end bindKey(MYBUTTON,"down",myFunction) Link to comment
Kernell Posted January 25, 2014 Share Posted January 25, 2014 local KEY = "z"; local DELAY = 5000; -- ms local iLastTick = 0; function KeyHandler() local iTick = getTickCount(); if iTick - iLastTick >= DELAY then iLastTick = iTick; -- Ваши действия.. end end bindKey( KEY, "up", KeyHandler ); Как по мне, такой вариант более гуманный Link to comment
AMARANT Posted January 25, 2014 Share Posted January 25, 2014 Как по мне, такой вариант более гуманный Согласен. Совсем забыл про getTickCount(). Без таймеров однозначно будет лучше. Автор, делай по 2-му варианту. Link to comment
Mafaze Posted January 25, 2014 Author Share Posted January 25, 2014 local KEY = "z"; local DELAY = 5000; -- ms local iLastTick = 0; function KeyHandler() local iTick = getTickCount(); if iTick - iLastTick >= DELAY then iLastTick = iTick; -- Ваши действия.. end end bindKey( KEY, "up", KeyHandler ); Как по мне, такой вариант более гуманный Спасибо Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now