簡體   English   中英

使用 p5.js,在 draw 中使用函數時,如何讓它只執行一次?

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

我在我的一個項目中使用 p5.js,我不明白如何檢查是否按下了某個鍵,以及何時運行一個函數,但只運行一次。

我有keyIsDown的函數內部draw ,因為我需要不斷地檢查輸入,但是當有鍵按下時,運行我的功能一次。 但是在此功能運行一次后,我需要它准備好再次按下該鍵或其他鍵。

它目前正在運行與幀率成正比的函數,我希望它在每次按鍵點擊時運行一次。 一些偽代碼如下所示:

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

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

即使我盡可能快地單擊該鍵,out 也會輸出“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")
  }
}

沒有任何反應,無論我按什么鍵。 應該有東西進入控制台,但什么都沒有。

您可以使用keyPressed()函數:

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

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

您可以在參考資料中找到更多信息。

另一種方法是創建一個布爾變量來跟蹤您是否已經處理過按鍵操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM