2016-04-03 3 views
-2

Я пытаюсь создать игру, в которой правильная комбинация чисел дает игроку эффект, чтобы помочь им пройти уровень. Мой план для этого заключался в том, чтобы использовать инструкции if для проверки нажатия клавиши и изменения переменных соответственно. Это должно быть очень просто, но мои попытки потерпели неудачу, в то время как я не могу найти страницы, которые адекватно объясняют это. Итак, кто-нибудь знает, как я могу обнаружить прессу числового ключа для оператора if в javascript?Обнаружение нажатия цифровой клавиши для оператора if

+1

Можете ли вы опубликовать код, который у вас есть до сих пор? что-нибудь работает? – JordanHendrix

+0

Эта библиотека может быть хорошим местом для начала или, может быть, даже рычагом - https://github.com/namuol/cheet.js – dmoo

+0

, вы вообще не смотрели, не так ли? Я просто сделал и нашел как 50 вопросов: http://stackoverflow.com/questions/2297524/javascript-jquery-keypress-logging – JordanHendrix

ответ

0

Если вы хотите ввести определенную последовательность чисел, вам нужно будет использовать кеш и проверить каждое нажатие клавиши. Ниже приведен пример. Я указал, что хочу 1, затем 2, затем 3 в этом порядке. Выполнение этого неверно сбрасывает последовательность. Завершив его, в этом случае тоже сбрасывается.

Попробуйте. запустите его и прес 1, затем 2 затем 3. Прерывание последовательности означает, что вы должны перезапустить.

//press 1, then 2 then 3 
 
var code = [49, 50, 51] 
 
var cache = []; 
 

 
function checkCode(eve) { 
 

 
    var keycode = eve.keyCode || eve.which; 
 

 
    if(keycode === cache.shift()){ 
 

 
     if(!cache.length){ 
 
     //resets if you did it. do not include if you want once. 
 
     replenishCache(); 
 

 
     //do whatever you do here. 
 
     doThing(); 
 
     } 
 

 
    } else { 
 
     replenishCache(); 
 
    } 
 
} 
 

 
function doThing(){ 
 
    alert('sequence entered'); 
 
} 
 

 
function replenishCache(){ 
 
    cache = code.slice(0); 
 
} 
 

 
replenishCache(); 
 

 
window.addEventListener('keypress', checkCode, false);

Я добавлю, что этот код полностью не в контексте каких-либо рамок или модуля или шаблон. Я просто привязал событие к окну, чтобы проиллюстрировать его. Вам нужно подумать о том, как переносить это во все, что вы делаете. Например, вместо того, чтобы просто вызвать более глобальную функцию непосредственно doThing в этом случае - вы, вероятно, должны передать это в какой-то плагин или модуль. То же самое с последовательностью кодов символов.

Смежные вопросы