2017-04-26 143 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()函数将您不想清除的内容绘制到离屏缓冲区。然后,每一帧清除旧帧,在屏幕上绘制屏幕外缓冲区,然后在其上绘制“动态”内容。

你将不得不尝试两种方法,并更具体地确定你害怕什么“表现”。但总的来说,上述两种方法正是你如何处理这个问题。