2014-02-21 66 views
0

太空入侵者遊戲:我想控制'基地槍'(左右移動並向入侵者發射導彈,所以我需要一個keypress或(keydown?)事件來改變一個變量X座標)和按鍵觸發事件,導彈javascriptpresspress來控制動畫

誰能告訴我如何檢測按鍵事件和變量改變

回答

0
​​
+0

我用這個解決方案,它工作得很好,謝謝。除了我的控制檯上剩下的37 ==右和39 ==。 – user3123418

+0

如果它適合您,請確保接受此解決方案。 –

0

喜歡這個

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/

0

夫婦的事情,我想添加到其他答案:

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 } 
} 

希望這會有所幫助,祝你好運!