javascript按键控制动画
太空入侵者游戏:我想控制“基础炮”(左右移动并向入侵者发射导弹。所以我需要一个按键或(按键向下?)事件来更改变量(x坐标)和一个按键事件来发射导弹 有人能告诉我如何检测按键事件以及如何更改变量吗?像这样javascript按键控制动画,javascript,events,keypress,keydown,Javascript,Events,Keypress,Keydown,太空入侵者游戏:我想控制“基础炮”(左右移动并向入侵者发射导弹。所以我需要一个按键或(按键向下?)事件来更改变量(x坐标)和一个按键事件来发射导弹 有人能告诉我如何检测按键事件以及如何更改变量吗?像这样 document.onkeydown = checkKey; var xCoord = 100; function checkKey(e) { e = e || window.event; switch (e.keyCode) { case 37 : //
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;
}
}
激动人心的小提琴:我想在其他答案中添加一些东西: 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==左。
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 }
}