Estoy intentando que aparezca un texto en la pantalla durante 3 segundos y luego aparezca otro texto diferente. He conseguido programar el primer texto correctamente, pero no sé que función tengo que usar para desaparezca a los 3 segundos y se vea el segundo texto.
use timer
https://processing.org/reference/millis_.html
a deluxe edition:
int step = 0;
long ts, tr;
long[] animator={12000, 7000, 20000}; //________ time schedule in msec
void timer() {
tr = animator[step] - ( millis() - ts ) ; //_ for show remaining time only
if ( millis() - ts > animator[step] ) {
// do whatever you have to do
println(timeString() + " end step "+step);
step++;
ts = millis();
if ( step >= animator.length ) step = 0; //- auto repeat
}
}
void setup() {
println( timeString() );
}
void draw() {
background(200, 200, 0);
fill(0);
text( "step "+step+" tr "+(tr/1000), 10, height/2); //_ show remaining time
timer();
}
String timeString() {
return ""+year() + "-" + nf(month(), 2) + "-" + nf(day(), 2) + "_" +
nf(hour(), 2) + "_" + nf(minute(), 2) + "_" + nf(second(), 2);
}
No hay un modo más sencillo? '
String myText = "TEXT A";
boolean init = true;
void timer() {
if ( init ) {
if ( millis() > 3000 ) {
myText = "TEXT B";
init = false;
println("timeout");
}
}
}
void setup() {
}
void draw() {
background(200,200,0);
timer();
text(myText, 10, 10);
}
En este video lo explico en inglés, pero igual se entiende el programa sin ver el vídeo?
El código es fácil de entender y funciona en mi programa, pero cuando aparece scene2(), scene1() no se borra y queda debajo, ambas son escenas estáticas. ¿Cómo puedo conseguir que scene1() dure 3 segundos, se borre y empiece scene2()? Mi código es
void draw (){
int m = millis();
if(m < 3000) {
scene1();
} else if(m > 3000) {
scene2();
}
Gracias
Hello,
Mi código es
void draw (){
int m = millis();
if(m < 3000) {
scene1();
} else if(m > 3000) {
scene2();
}
¿Sugieres con ese ejemplo que en vez de usar if y else if use switch? ¿Se usa de la misma forma?
-1- please format your code </> code button
and post running code we can test.
-2- your question why drawing scene1 is not erased after 3 sec?
you need the background();
at the beginning of draw ( or in all sceneX(){};
)
-3- what you want your program to do if millis() == 3000
sorry, bad trick question, your if logic should be revised
void setup() {}
void draw () {
background(200, 200, 0);
if (millis() < 3000) scene1();
else scene2();
}
void scene1() {
text("scene 1", 10, 10);
}
void scene2() {
text("scene 2", 10, 10);
}
-4-
using if
https://processing.org/reference/if.html
or switch
https://processing.org/reference/switch.html
is up to you.
Gracias, usando background() al principio de draw() lo consigo.