2015-04-03 55 views
0

我目前正在觀看一堆關於在HTML5中使用畫布標記以創建簡單2D遊戲的介紹性視頻。無響應的charCode語句

當我正在關注視頻代碼 - 確切地說 - 在這個過程中有一個錯誤。我試圖在畫布上繪製一個矩形來響應導航按鈕並相應地移動。

這裏是遊戲的主要代碼:

function game() { 
    update(); 
    render(); 
} 

function update() { 
    //This is the code that I think is causing an error 
    if(keys[38]) player.y--; 
    if(keys[40]) player.y++; 
    if(keys[37]) player.x--; 
    if(keys[39]) player.x++; 
} 

function render() { 
    context.fillRect(player.x, player.y, player.width, player.height); 
} 

setInterval(function(){ 
    game(); 
}, 1000/30); 

該網站運行時我加載它完美的罰款,但它不會給用戶點擊響應。感謝您提前提供任何幫助。

下面的按鍵排列,增加了索引值的每次一個導航鍵按下:

var keys = []; 

window.addEventListener('keydown', function(e){ 
    keys[e.keycode] = true; 
}, false); 

window.addEventListener('keyup', function(e){ 
    delete keys[e.keycode] 
}, false); 

回答

0

看起來你似乎在你的事件處理程序中使用了所有小寫的.keycode屬性。該屬性不存在。相反,請嘗試使用.keyCode屬性,並使用大寫字母C

使用不存在的屬性返回undefined,以便始終執行keys[undefined] = truekeys[undefined] = false

+0

感謝百萬,這個問題一直困擾着我很久。 – 2015-04-03 09:27:02

0

,因爲你剛分配鍵代碼它不以鼠標交互響應。我假設你可以用箭頭鍵控制矩形? 你正在使用哪個框架?

+0

我沒有使用任何框架。我剛剛創建了一個按鍵狀態數組,每按下一個按鍵時觸發一次,因此會根據數組索引值向一個方向移動角色 – 2015-04-03 09:16:59