Text 使文本在处理过程中出现和消失

Text 使文本在处理过程中出现和消失,text,processing,Text,Processing,所以,我想知道是否有一种方法可以让文本在被另一个文本替换时出现然后消失。我目前发现了一个代码,可以让我的文本一个接一个地缓慢显示,但我不知道是什么代码可以让我在新文本出现时摆脱以前的文本。请帮帮我 // creates the window with white background import ddf.minim.*; Minim minim; AudioSnippet snip; color c1 = color(0,0,0), c2 = color(0,0,0), current;

所以,我想知道是否有一种方法可以让文本在被另一个文本替换时出现然后消失。我目前发现了一个代码,可以让我的文本一个接一个地缓慢显示,但我不知道是什么代码可以让我在新文本出现时摆脱以前的文本。请帮帮我

// creates the window with white background
import ddf.minim.*;

Minim minim;
AudioSnippet snip;
color c1 = color(0,0,0), c2 = color(0,0,0), current;

void setup(){
  size(1200, 800);
  current = c1;
  smooth();
  minim = new Minim(this);
  snip = minim.loadSnippet("LoudGun.mp3");
}

void mousePressed() {
  snip.play();
if(current==c1) { current = c2; } else { current = c1; }
}

// draw "Charlotte"  
void CharlotteBacon() {
  frameRate(5);
  fill(255);
  textSize(50);
  text("Charlotte Bacon, Age 6", 600, 275);
}

// draw "Daniel" 
void DanielBarden() {
  frameRate(5);
  fill(255);
  textSize(50);
  text("Daniel Barden, Age 7", 20, 50);
}

int col = 0;
// main method where all above methods are executed on the white window
void draw() {
   background(current);
  if(mouseX != pmouseX && mouseY != pmouseY){

  }
  if (mousePressed) { 

  }
  // each phrase is printed at intervals of 2 seconds
  if (mouseX == pmouseX && mouseY == pmouseY && mousePressed != true) {
    ;
    int currentTime = millis();
    int timeLapse = 2000;
    if (currentTime > timeLapse) {
      CharlotteBacon();
    }
    if (currentTime > timeLapse*2) {
      DanielBarden();
    }
  }
}

一种方法是使用一个字符串保存要显示的文本,并将要显示的文本指定给它,这样它就会替换它。 我做了一个例子,基于你代码的时间

String oneName = "Carol";
String otherName = "Chartllote";
String displayed ="";

int interval = 2000; // 2s
int time;

PFont font;

void setup() {
  size(300, 300);
  font = createFont("arial", 26);
  background(0);
  displayed = oneName;
  time = millis();
  textFont(font);
  fill(255);
}

void draw() {
  background(0);
  text(displayed, width/2 - textWidth(displayed)/2, height/2);
  if (millis() - time > interval) {
    displayed = displayed.equals(oneName)? otherName:oneName;
    time  = millis();
  }
}