Hol lehet a hiba?
elkezdtem ismerkedni a processing nyelvvel.
a programomnak azt kéne csinálnia, hogy megjelenik egy ablak, ami a jobb felső sarokban számolja az eltelt másodperceket. amikor kattintok 5 mp-ig pirosnak kéne lennie a képernyőnek (mp számláló nélkül), ezután számláló lenulláz és minden mehet elölről.
a problémám, hogy nem 5 mp-ig piros, hanem csak a kattintás utáni 5. mp utolsó pillanata.
a kód:
int m;
int start;
void setup(){
size(750,750);
start = millis();
}
void draw(){
m = (millis()-start)/1000;
background(135);
fill(255);
textSize(16);
text(m,700,15);
}
void mousePressed(){
start = millis();
m = (millis()-start)/1000;
while(m<5){
m = (millis()-start)/1000;
background(255,0,0);
}
start = millis();
}
void mousePressed(){
noloop();
background(255,0,0);
delay(5000);
redraw();
loop();
}
draw-ba pedig elég ennyi, többit tedd a setupba:
void draw(){
m = (millis()-start)/1000;
text(m,700,15);
}
óó zsír kösz! viszont a te megoldásoddal is jelen van amit #3-ban írtam, mint megtudtam ez azért, mert a képernyő csak a draw() legvégén frissül. egy kis javítással most már működik rendesen ahogy elterveztem, úgyhogy ha valaki valamikor egyszer ugyan evvel problémával küzd annak itt a normálisan működő kód:
int m;
int start;
boolean ok = false;
void setup() {
size(750, 750);
textSize(16);
fill(255);
start = millis();
}
void draw() {
if(ok){
delay(5000);
start = millis();
m = 0;
ok = false;
}
else{
m = (millis()-start)/1000;
background(135);
text(m, 700, 15);
}
}
void mousePressed() {
ok = true;
background(255,0,0);
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!