使用p5.js,在draw内部使用函数时,如何使其仅运行一次?

问题描述 投票:0回答:1

我正在将p5.js用于我的项目,但我不明白如何检查是否按下了键,何时检查一个键,但只运行了一次。

我在keyIsDown中具有draw功能,因为我需要不断检查输入,但是当按下一个键时,请运行一次我的功能。但是,一旦该功能运行一次,我就需要准备好再次按下该键或其他键。

它当前正在运行与帧率成比例的函数,我希望它每次单击一次即可运行。一些伪代码看起来像:

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

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

并且即使我尽可能快地单击该键,输出也会输出“ 1”,但输出5-30次。问题是draw()不断循环播放,因此当它检查keyPressed时,会将其注册为按下几次。

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

编辑:

我都尝试过:

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

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

而且,无论我按什么键,都不会发生任何事情。某些东西应该进入控制台,但是什么也没有。

javascript input p5.js
1个回答
0
投票

您可以使用keyPressed()功能:

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.