【发布时间】:2021-08-22 05:03:28
【问题描述】:
我正在尝试创建一个函数,该函数将通过用户按下 WASD 或箭头键来向上、向下、向左或向右移动 png 图像。目前我已经找到了一种使用 WASD 移动项目的方法,但是当我引入“或”操作数并使用 Key.Code 作为箭头键时,即使它仍然可以识别 WASD,也无法识别箭头键
<body>
<div class="scene">
<div class="rocket">
<img src="rocket.png" alt="" />
</div>
</div>
<script src="script.js"></script>
document.addEventListener("keydown", (e) => {
var rocket = document.querySelector(".rocket");
let speed = 10;
if (event.keyCode == (87 || 38) && rocket.offsetTop > 100) {
rocket.style.top = `${rocket.offsetTop - speed}px`;
}
if (event.key == "s" && rocket.offsetTop < window.innerHeight - 300) {
rocket.style.top = `${rocket.offsetTop + speed}px`;
}
if (event.key == "a" && rocket.offsetLeft > 50) {
rocket.style.left = `${rocket.offsetLeft - speed}px`;
}
if (event.key == "d" && rocket.offsetLeft < window.innerWidth - 125) {
rocket.style.left = `${rocket.offsetLeft + speed}px`;
}
if (event.key == " " && rocket.offsetTop > 100) {
rocket.style.top = `${rocket.offsetTop - 200}px`;
}
console.log(event.keyCode);
});
【问题讨论】:
-
如果你这样尝试会发生什么:
if ((event.keyCode == 87 || event.keyCode == 38) && rocket.offsetTop > 100)?编辑:我还看到在你的函数中你传递了e,而不是event。所以试试e.keyCode而不是event.keyCode。
标签: javascript html