Kaboom.js;如何检查按下键时是否有碰撞



一开始答案似乎很简单,但并不奏效。
我是这样做的:

import kaboom from "kaboom";
kaboom();
loadSprite("bean", "sprites/bean.png");
const player = add([
sprite("bean"),
pos(80, height() / 2),
area(),
"Player",
]);
function spawnRect() {
add([
rect(50, 50),
pos(width(), height() / 2),
outline(4),
area(),
solid(),
color(127, 200, 255),
move(LEFT, 500),
cleanup(),
"Rect",
])
wait(rand(0.25, 1.5), () => {
spawnNote();
});
}
spawnNote();
onKeyPress("d", () => {
onCollide("Player", "Note", () => {
shake();
});
});

这不起作用,但是当我按下"d"时,它会不断检查是否"Player"one_answers";Note"是碰撞。我只希望它在我按下&;d&;时检查。我怎么做呢?

我认为你不可能像这样同时检查两个事件。

使用条件来检查碰撞事件触发时是否按下了键。

onCollide("Player", "Note", () => {
if (isKeyPressed("d")) {
shake(120);
}
});

或者你可以在按下键时使用碰撞条件,但你需要note对象。

onKeyPress("d", () => {
if (player.isColliding(note)) () => {
shake(120)  
}
})

最新更新