1

私は処理が初めてですが、基本的にこの効果を得ようとしています:

待っている。

(1秒後)

待っている..

(1秒後)

待っている...

(1秒後)

待っている....

(その後リセット)

待っている。

text(); として

どうすればこれを達成できるのでしょうか?

4

1 に答える 1

2

代わりに millis() を使用してください。プログラムが開始してからの時間をミリ秒単位でカウントします。ここに簡単な反例があります:

より良い例のためにコードを再度編集しました

PFont font;
String time = "000";
int initialTime;
int interval = 1000;
int fontSize;

void setup()
{
  size(300, 300);
  fontSize = 40;
  font = createFont("Arial", fontSize);
  background(255);
  fill(0);
  smooth();
  noStroke();
  textFont(font);
  initialTime = millis();
}

void draw()
{
  background(255);

  // if current time minus lastStored bigger than interval 
  if (millis() - initialTime > interval){

    // increment time as an int and back to string again
    time = nf(int(time) + 1, 3);

    // reset counter
    initialTime = millis();
  }

  // just  cosmetic using the counter ...
  if (int(time) % 5 != 0) {
    fill(210);
  }else{
    fill(170, 100, 100);
  }

  ellipse(width/2, height/2, 120, 120);

  fill(255);
  ellipse(width/2, height/2, 100, 100);


  //display time
  fill(0);
  text(time, width/2 - textWidth(time)/2, height/2 + fontSize/2.8 );
}
于 2012-10-31T03:05:36.190 に答える