如何Javascript/html5输入键盘顺序设置(不在同一时间)
How to Javascript/html5 Input Keyboard in-order set (not in the same time)
我创建了一个简单的游戏,需要完全按照步骤按下键盘按钮才能移动角色。但我不知道该怎么做,我在互联网上找到的所有内容都是关于同时按下多个键盘按钮。 (设置数组并使用&&)
想象一下:您必须按 A 然后按 B、C 和 D 才能让角色向前移动,或者依次按 D、C、B 和 A 才能向后移动。这些都不是同时按,而是按顺序来的。
那么有人可以告诉我或给我一些线索吗?另外,像双击鼠标一样按下按钮怎么样?- 可以吗。
提前致谢。
只是我头脑中的一些东西:
var aPressed = false;
var bPressed = false;
var cPressed = false;
var dPressed = false;
document.onkeydown = function (event) {
var key = event.keyCode;
switch (key) {
case 65:
aPressed = true;
break;
case 66:
if (aPressed) {
bPressed = true;
}
break;
case 67:
if (aPressed && bPressed) {
cPressed = true;
}
break;
case 68:
if (aPressed && bPressed && cPressed) {
dPressed = true;
}
break;
default: //Reset all buttons
aPressed = false;
bPressed = false;
cPressed = false;
dPressed = false;
break;
}
if (dPressed) {
//Move forward and reset pressed buttons
}
}
希望对您有所帮助:)
编辑:
至于 "double pressing" 一个按钮,你可以将它与这样的东西结合起来:
var presscount = 0;
var delay = 300;
document.onkeydown = function(){
presscount++;
if(presscount == 1)
{
setTimeout(function(){
if(presscount == 1)
{
//stuff to do on single press
}
else
{
//stuff to do on double press
}
}, delay);
}
}
我创建了一个简单的游戏,需要完全按照步骤按下键盘按钮才能移动角色。但我不知道该怎么做,我在互联网上找到的所有内容都是关于同时按下多个键盘按钮。 (设置数组并使用&&)
想象一下:您必须按 A 然后按 B、C 和 D 才能让角色向前移动,或者依次按 D、C、B 和 A 才能向后移动。这些都不是同时按,而是按顺序来的。
那么有人可以告诉我或给我一些线索吗?另外,像双击鼠标一样按下按钮怎么样?- 可以吗。
提前致谢。
只是我头脑中的一些东西:
var aPressed = false;
var bPressed = false;
var cPressed = false;
var dPressed = false;
document.onkeydown = function (event) {
var key = event.keyCode;
switch (key) {
case 65:
aPressed = true;
break;
case 66:
if (aPressed) {
bPressed = true;
}
break;
case 67:
if (aPressed && bPressed) {
cPressed = true;
}
break;
case 68:
if (aPressed && bPressed && cPressed) {
dPressed = true;
}
break;
default: //Reset all buttons
aPressed = false;
bPressed = false;
cPressed = false;
dPressed = false;
break;
}
if (dPressed) {
//Move forward and reset pressed buttons
}
}
希望对您有所帮助:)
编辑:
至于 "double pressing" 一个按钮,你可以将它与这样的东西结合起来:
var presscount = 0;
var delay = 300;
document.onkeydown = function(){
presscount++;
if(presscount == 1)
{
setTimeout(function(){
if(presscount == 1)
{
//stuff to do on single press
}
else
{
//stuff to do on double press
}
}, delay);
}
}