使用 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 中找到更多信息。
另一种方法是创建一个布尔变量来跟踪您是否已经处理了按键。
我正在为我的一个项目使用 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 中找到更多信息。
另一种方法是创建一个布尔变量来跟踪您是否已经处理了按键。