使用 p5.js,在 draw 中使用函数时,如何让它只执行一次?

Using p5.js, when using a function inside of draw, how do I make it only go once?

我正在为我的一个项目使用 p5.js,但我不明白如何检查某个键是否被按下,当它被按下时,运行 是一个函数,但是只有一次。

我在 draw 中有 keyIsDown 函数,因为我需要不断地检查输入,但是当按下某个键时,运行 我的函数一次。但是在这个函数 运行s 一次之后,我需要它准备好再次按下该键或另一个键。

目前运行正在调整与帧率成正比的函数,我希望它在每次按键时运行一次。一些伪代码看起来像:

function ABC () {
    console.log("1")
}

draw () {
    when key(1) is pressed:
        function ABC()
}

out 会输出“1”但是 5-30 次,即使我尽可能快地点击按键也是如此。问题是 draw() 不断循环,所以当它检查 keyPressed 时,它会将其注册为按下了几次。

我如何确保每次按钮点击一次功能仅 运行s 一次,仍然继续等待另一个按钮点击,但 运行s 功能正常工作?

编辑:

我都试过了:

function keyTyped() {
  console.log("a")
  if (key === 'a') {
    console.log("a")
  }
}

function keyPressed() {
  console.log("a")
  if (key === 'a') {
    console.log("a")
  }
}

无论我按什么键,都没有任何反应。有些东西应该转到控制台,但什么都没有。

您可以使用 keyPressed() 函数:

function draw() {
  // stuff that happens 60 times per second
}

function keyPressed() {
  // stuff that happens once per key press
}

您可以在 the reference 中找到更多信息。

另一种方法是创建一个布尔变量来跟踪您是否已经处理了按键。