太空入侵者遊戲:我想控制'基地槍'(左右移動並向入侵者發射導彈,所以我需要一個keypress或(keydown?)事件來改變一個變量X座標)和按鍵觸發事件,導彈javascriptpresspress來控制動畫
誰能告訴我如何檢測按鍵事件和變量改變
太空入侵者遊戲:我想控制'基地槍'(左右移動並向入侵者發射導彈,所以我需要一個keypress或(keydown?)事件來改變一個變量X座標)和按鍵觸發事件,導彈javascriptpresspress來控制動畫
誰能告訴我如何檢測按鍵事件和變量改變
喜歡這個
document.onkeydown = checkKey;
var xCoord = 100;
function checkKey(e) {
e = e || window.event;
switch (e.keyCode) {
case 37 : // left
xCoord -= 5;
break;
case 39 : // right
xCoord += 5;
break;
}
}
激動人心的小提琴。?: http://jsfiddle.net/u5eJp/
周夫婦的事情,我想添加到其他答案:
1)使用常數,使其更容易對自己
2)有沒有辦法來檢查,如果鍵當前壓在JavaScript中,所以你應該保持跟蹤什麼目前按下以及
var pressed = {
up: false,
down: false,
left: false,
right: false
};
var LEFT_ARROW = 37;
var UP_ARROW = 38;
var RIGHT_ARROW = 39;
var DOWN_ARROW = 40;
document.onkeydown = function (e) {
e = e || window.event;
switch (e.keyCode) {
case LEFT_ARROW:
pressed.left = true;
break;
case UP_ARROW:
pressed.up = true;
break;
case RIGHT_ARROW:
pressed.right = true;
break;
case DOWN_ARROW:
pressed.down = true;
break;
default:
break;
}
}
//update position separately
function updatePos() {
if (pressed.up) { //change y up }
if (pressed.down) { //change y down }
if (pressed.left) { //change x left }
if (pressed.right) { //change x right }
}
希望這會有所幫助,祝你好運!
我用這個解決方案,它工作得很好,謝謝。除了我的控制檯上剩下的37 ==右和39 ==。 – user3123418
如果它適合您,請確保接受此解決方案。 –