我一直试图使一个游戏与箭头键的运动,并希望使,"当所有的箭头键都没有按下,然后键=什么,".所以我需要一种方法来检测这一点,我已经try 使用Keyup,但它不工作.

我试着在堆栈溢出问题上使用其他问题,但我发现没有一个问题像我想象的那样与标题相关.如果有帮助,我可以在下面添加一些示例代码.

var key = "";
onkeydown = e => {
    key = e.code;
};

这会将其设置为代码,但我希望在用户松开该键时将其重新设置为零.

// ive tried this keyup method buts it so buggy
onkeyup = e => {
    key = "";
}

这是一些东西,但我不能使用它,因为所有的缺点,我会增加一个东西,但作为我试图实现的一个例子,我不知道我真正在做什么.

var ifAllKeysArePressed; // I dont know what it should equal or anything
// I want the value to be boolean
setInterval(() => {
    if(!ifAllKeysArePressed) {
        key = "";
    };
}, Infinity);

推荐答案

您可以将当前按下的所有关键点存储在Set中.

const pressed = new Set, p = document.querySelector('p');
document.addEventListener('keydown', e => {
  pressed.add(e.code);
  p.textContent = '';
});
document.addEventListener('keyup', e => {
  pressed.delete(e.code);
  if (!pressed.size) p.textContent = 'No keys down';
});
<p></p>

Javascript相关问答推荐

将数据从strapi提取到next.js,但响应延迟API URL

我不知道为什么我的JavaScript没有验证我的表单

单击更新页面的按钮后,页面刷新;测试/断言超时,有两个标题,但没有一个标题

模块与独立组件

了解Node.js中的EventEums和浏览器中的addEventEums之间的关系

当运行d3示例代码时,没有显示任何内容

自定义高图中的x轴标签序列

如何从调整大小/zoom 的SVG路径定义新的d属性?""

显示图—如何在图例项上添加删除线效果?

阿波罗返回的数据错误,但在网络判断器中是正确的

Javascript json定制

如何在Angular17 APP中全局设置AXIOS

如何将数据块添加到d3力有向图中?

基于props 类型的不同props ,根据来自接口的值扩展类型

邮箱密码重置链接不适用于已部署的React应用程序

使用线性插值法旋转直线以查看鼠标会导致 skip

如何在脚本编译后直接将RxJ模块导入浏览器(无需Angel、webpack、LiteServer)

Cherrio JS返回父div的所有图像SRC

我无法在Api Reaction本机上发出GET请求

脚本语法错误只是一个字符串,而不是一个对象?