Random 处理生成随机数量的文本

Random 处理生成随机数量的文本,random,processing,draw,Random,Processing,Draw,我正在尝试使用处理生成一些随机文本,我想要的是,每当我按下鼠标,新文本就会生成并显示在屏幕上。到目前为止,由于draw()的循环,文本只是生成的,而不是删除的。有没有办法解决这个问题 int click = 0; void setup() { String alfabet = "abcdefghijklmnopqrstuvw"; size(1000,1000); textSize(64); textAlign(CENTER); } void draw() { background(0); if

我正在尝试使用处理生成一些随机文本,我想要的是,每当我按下鼠标,新文本就会生成并显示在屏幕上。到目前为止,由于draw()的循环,文本只是生成的,而不是删除的。有没有办法解决这个问题

int click = 0;
void setup() {
String alfabet = "abcdefghijklmnopqrstuvw";
size(1000,1000);
textSize(64);
textAlign(CENTER);

}
void draw() {
background(0);
if(click==1) {
click = 0;
genereren();
}
}
void genereren() {
String alfabet = "abcdefghijklmnopqrstuvw";
int x = 10;
for(int i = 0; i < 15; i = i+1) {
float r = random(24);
if(r < 1) {
  r = r+1;
}
int d = int(r);
String EersteLetter = alfabet.substring(d-1,d);
if ( i <= 4) {
text(EersteLetter, 60+(x*3*i), 80);  
} 
if ( i <= 8) {
text(EersteLetter, 60+(x*3*i), 120);  
}
if ( i <= 12) {
text(EersteLetter, 60+(x*3*i), 160);  
}
if ( i <= 16) {
text(EersteLetter, 60+(x*3*i), 200);  
}
}
}
void mouseClicked() {
  click = 1;
}
int click=0;
无效设置(){
字符串alfabet=“abcdefghijklmnopqrstuv”;
尺寸(10001000);
文本大小(64);
文本对齐(中心);
}
作废提款(){
背景(0);
如果(单击==1){
单击=0;
generen();
}
}
void generen(){
字符串alfabet=“abcdefghijklmnopqrstuv”;
int x=10;
对于(int i=0;i<15;i=i+1){
浮动r=随机(24);
if(r<1){
r=r+1;
}
int d=int(r);
字符串EersteLetter=alfabet.子字符串(d-1,d);

如果(i尝试此示例,如果您单击鼠标,它将显示或不显示,如果您按住鼠标按钮,您将冻结当前文本

boolean click = false;
void setup() {
  String alfabet = "abcdefghijklmnopqrstuvw";
  size(1000, 1000);
  textSize(64);
  textAlign(CENTER);
  background(0);
}
void draw() {
  if (click) {
    genereren();
  }
}

void mousePressed() {
  if (mouseButton == LEFT) {
    genereren();
  }
}

void genereren() {
  background(0);
  String alfabet = "abcdefghijklmnopqrstuvw";
  int x = 10;
  for (int i = 0; i < 15; i = i+1) {
    float r = random(24);
    if (r < 1) {
      r = r+1;
    }
    int d = int(r);
    String EersteLetter = alfabet.substring(d-1, d);
    if ( i <= 4) {
      text(EersteLetter, 60+(x*3*i), 80);
    } 
    if ( i <= 8) {
      text(EersteLetter, 60+(x*3*i), 120);
    }
    if ( i <= 12) {
      text(EersteLetter, 60+(x*3*i), 160);
    }
    if ( i <= 16) {
      text(EersteLetter, 60+(x*3*i), 200);
    }
  }
}
void mouseReleased() {
  clear();
}
void mouseClicked() {
  click=!click;
}
boolean click=false;
无效设置(){
字符串alfabet=“abcdefghijklmnopqrstuv”;
大小(10001000);
文本大小(64);
文本对齐(中心);
背景(0);
}
作废提款(){
如果(单击){
generen();
}
}
void mousePressed(){
如果(鼠标按钮==左){
generen();
}
}
void generen(){
背景(0);
字符串alfabet=“abcdefghijklmnopqrstuv”;
int x=10;
对于(int i=0;i<15;i=i+1){
浮动r=随机(24);
if(r<1){
r=r+1;
}
int d=int(r);
字符串EersteLetter=alfabet.子字符串(d-1,d);

如果(i最简单的方法是不使用“background(0);”,那么文本将永远保留。然后,您可以添加一个按钮,运行带有“background(0);”的方法来删除所有文本。

您只需“记住”字符串并在draw()中绘制它们。创建一个字符串列表,每次单击都添加一个新字符串,在列表中循环绘制并输出每个文本。我一直试图先将其存储到数组中,然后再读取,但我找不到方法只运行一次循环。是否可以将其存储在单独的空白中,然后将该数组放入绘图中?