太空入侵者游戏:我想控制'基地枪'(向左和向右移动并向入侵者发射导弹。所以我需要一个按键或(keydown?)事件来改变一个变量(x坐标)和一个关键新闻事件发射导弹。
有人能告诉我如何检测按键事件并更改变量吗?
答案 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/
答案 1 :(得分:0)
document.onkeydown = function(e) {
var key = e.keyCode;
if (key===37) {//left arrow pressed
} else if (key===39) {//right arrow pressed
}
}
答案 2 :(得分: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 }
}
希望这有帮助,祝你好运!