-2
我想製作一個遊戲,其中正確的數字組合可以讓玩家獲得幫助他們通過關卡的效果。我這樣做的計劃是使用if語句來測試被按下的鍵並相應地更改變量。這應該是非常簡單的,但我的嘗試失敗了,而我找不到任何足以解釋這一點的頁面。那麼,有沒有人知道我怎麼能檢測出在JavaScript中的if語句的數字鍵的按下?檢測一個if語句的數字鍵的按下
我想製作一個遊戲,其中正確的數字組合可以讓玩家獲得幫助他們通過關卡的效果。我這樣做的計劃是使用if語句來測試被按下的鍵並相應地更改變量。這應該是非常簡單的,但我的嘗試失敗了,而我找不到任何足以解釋這一點的頁面。那麼,有沒有人知道我怎麼能檢測出在JavaScript中的if語句的數字鍵的按下?檢測一個if語句的數字鍵的按下
如果你正在尋找的是輸入一些特定的數字序列,你需要使用緩存並檢查每個擊鍵。下面是一個例子。我已經表明我想要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
- 您應該將其傳遞給某種插件或模塊。與字符代碼序列一樣的東西。
你可以發佈你到目前爲止的代碼嗎?有什麼工作? – JordanHendrix
這個圖書館可能是一個開始的好地方,或者甚至可以利用 - https://github.com/namuol/cheet.js – dmoo
你沒有看過你所有的東西?我剛剛做了,發現像50個問題:http://stackoverflow.com/questions/2297524/javascript-jquery-keypress-logging – JordanHendrix