从draw()函数中使text静态化

时间:2014-03-01 10:50:12

标签: processing

我从我发现的教程中提取了以下示例,因为它包含了我正在寻找的大部分基本功能。我的麻烦是这样的:我希望headline []数组中的每个字符串都会移动到窗口上(就像它已经做的那样)然后在退出之前停止。而不是消失,我希望字符串保持静态,因为数组中的下一个字符移动...之前也最终停止。换句话说,当更多字符串进入窗口时,我希望文本看起来像是在彼此之上堆叠。

以下是代码:

String[] headlines = {
  "Processing downloads break downloading record.", 
  "New study shows computer programming lowers cholesterol.",
};

PFont f; 
float x; 
int index = 0;

void setup() {
  size(400, 200);
  f = createFont("Arial", 16, true);

  x = width;
}

void draw() {

  background(255);
  fill(0);

  textFont(f, 16);
  textAlign (LEFT);


  text(headlines[index], x, 180); 

  x = x - 5.5;

  float w = textWidth(headlines[index]); 


  if (x < 2) {
    x = width;
    index = (index + 1) % headlines.length;
  }
}

1 个答案:

答案 0 :(得分:0)

正如我已经理解了你的问题,你希望写入屏幕的文本堆积起来,这意味着每次运行draw()函数时都不会重绘它们。

将background()调用从draw()函数移动到setup()函数。

Background()将重绘背景,并清除上一次draw()运行中的文本。如果你想在draw()的最后一轮中保留画布的内容,只需将background()调用移动到setup()函数即可。

Processing background() function documentation