2016-04-03 63 views
-2

我想製作一個遊戲,其中正確的數字組合可以讓玩家獲得幫助他們通過關卡的效果。我這樣做的計劃是使用if語句來測試被按下的鍵並相應地更改變量。這應該是非常簡單的,但我的嘗試失敗了,而我找不到任何足以解釋這一點的頁面。那麼,有沒有人知道我怎麼能檢測出在JavaScript中的if語句的數字鍵的按下?檢測一個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 - 您應該將其傳遞給某種插件或模塊。與字符代碼序列一樣的東西。