当空格键与上键和左键组合按下时,p5.js代码不会执行



我正在尝试创建一个基本游戏,它允许在屏幕上移动,并在按下空格键时发射一些东西。为了做到这一点,我创建了每个方向的移动,看起来都是正确的,我添加了sperate代码来处理按下的空格键。对于这个例子,我刚刚添加了按下空格键时的控制台日志记录。

当我在移动时按下空格键时,它似乎在各个方向上都能正确工作,除了与向上和向左组合按下时。我看不出代码有任何问题,尤其是因为它在其他方面都可以工作。

我对编程还是个新手,所以如果没有很好地解释,我很抱歉。这是我代码的简化版本,但复制了我遇到的相同问题。这是我的代码:

let squ = {
x: 300,
y: 300,
size: 20
};
function setup() {
createCanvas(600,600);
background(100);
};
function draw() {
rect(squ.x, squ.y, squ.size);
fill(255);
if (keyIsDown(DOWN_ARROW)) {
squ.y += 1;
if (keyIsDown(DOWN_ARROW) && keyIsDown(LEFT_ARROW)) {
squ.y += 1;
squ.x -= 1;
} else if (keyIsDown(DOWN_ARROW) && keyIsDown(RIGHT_ARROW)) {
squ.y += 1;
squ.x += 1;
};
};
if (keyIsDown(UP_ARROW)) {
squ.y -= 1;
if (keyIsDown(UP_ARROW) && keyIsDown(LEFT_ARROW)) {
squ.y -= 1;
squ.x -= 1;
} else if (keyIsDown(UP_ARROW) && keyIsDown(RIGHT_ARROW)) {
squ.y -= 1;
squ.x += 1;
};
};
if (keyIsDown(RIGHT_ARROW)) {
squ.x += 1;
};
if (keyIsDown(LEFT_ARROW)) {
squ.x -= 1;   
};
};
function keyTyped() {
if (keyCode === 32) {
console.log('space pressed');
};

};
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Spaceship</title>
<style>
body {
padding: 0;
margin: 0;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.min.js" integrity="sha512-WIklPM6qPCIp6d3fSSr90j+1unQHUOoWDS4sdTiR8gxUTnyZ8S2Mr8e10sKKJ/bhJgpAa/qG068RDkg6fIlNFA==" crossorigin="anonymous"></script>
</head>
<body>
<main>
</main>
</body>
</html>

我知道这个问题有点老了,但对于那些好奇的人来说,我认为这是你的键盘的问题,而不是P5.js的问题。你的键盘只能发送一定数量的数据。基于此,我问了一个类似的问题:P5.js一些密钥码没有响应

希望这能有所帮助!

最新更新