使文本在处理中出现并消失
问题描述:
所以,我想知道是否有办法让文本出现,然后消失,因为它被替换为不同的文本。我目前发现了一个代码,可以让我逐一缓慢地显示文本,但是我不知道代码能让我在新文本出现时摆脱先前的文本。请帮帮我!要做到这一点使文本在处理中出现并消失
// 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();
}
}
非常感谢你!这很棒! – user2337815 2013-05-06 05:57:06