2017-04-26 146 views
0
var j=0; 
    function keyPressed() {     
      word[j] =key; 
      j++; 

      if(keyCode == BACKSPACE){   
       shorten(word); 
       shorten(word); 
       arrayCopy(word, contents);   
      } 
      else{ 
       contents=key; 
      } 

    } 
    function draw(){ 
     text(contents, pos_x, pos_y, 300, 300); 
     pos_x = pos_x + textWidth(contents); 
    } 

當我使用退格鍵時,我使用shorten()刪除array.how的最後一個元素,將此新文本放在畫布上,而不調用clear()和背景()。如何清除p5js畫布上的舊文本

+0

請發表[mcve]。爲什麼你不想使用'background()'函數?這通常就是你如何處理這個問題。 –

+0

當我們使用background()函數時,畫布上的其他繪圖消失,重新繪製繪圖,如果我們嘗試createGraphics()函數,關閉屏幕圖形緩衝區,將出現性能問題。請嘗試使用最佳解決方案。 – Tanzeem

回答

0

您已經列出了您的兩個選項。

選項1:每幀,調用background()函數清除舊幀,然後再繪製一切。

選項2:使用createGraphics()函數將您不想清除的內容繪製到離屏緩衝區。然後,每一幀清除舊幀,在屏幕上繪製屏幕外緩衝區,然後在其上繪製「動態」內容。

你將不得不嘗試兩種方法,並更具體地確定你害怕什麼「表現」。但總的來說,上述兩種方法正是你如何處理這個問題。