0

このグループの最後の配列オブジェクトが追加されるまで、配列のグループをフェードアウトさせたいです。そして、millis() を使用して、3 つのオブジェクトごとに低速でフェードアウトします。だから私は呼び出された関数を作成し、boolean timelag(int time, int number)それに時間とシーケンス番号を渡すたびに、3番目のオブジェクトが作成されるたびに2秒後にフェードアウトすることを期待していますが、何も起こらなかったようです

void draw() {
  background(255, 255, 255);

  for (int i=0; i<zoog.length; i++) {
    zoog[i].jiggle();
    zoog[i].display();
    if(i%3 ==0 && i>=3){
       time = millis();
       timelag(time,i);
    }    
  }
  if(fadeout){
      zoog[thatnumber].disappear();
      zoog[thatnumber-1].disappear();
      zoog[thatnumber-2].disappear(); 
    }
}

私のタイムラグ機能:

boolean timelag(int time, int number){
  int thattime = time;
  if(millis()-thattime>2000){
    thatnumber = number;
    fadeout = true;
  }
  else 
   fadeout = false;


  return fadeout;
}

コード全体はこちら

Zoog[]zoog = new Zoog[1];
float count=0;
int xpos =0;
int ypos =0;
String message="haha";
int ntextsize = 20;
int nopacity =200;
int thistime = 0;
int thiscount = 0;
int time =0;
int number =0;
boolean fadeout = false;
int thatnumber=0;


//Zoog zoog;

void setup() {
  size(400, 400);
  xpos = int(random(width/2-200, width/2+40));
  ypos = int(random(height/2, height/2-40));
  zoog[0] = new Zoog(xpos, ypos, message, nopacity);
}

void draw() {
  background(255, 255, 255);

  for (int i=0; i<zoog.length; i++) {
    zoog[i].jiggle();
    zoog[i].display();
    if(i%3 ==0 && i>=3){
       time = millis();
       timelag(time,i);
    }    
  }
  if(fadeout){
      zoog[thatnumber].disappear();
      zoog[thatnumber-1].disappear();
      zoog[thatnumber-2].disappear(); 
    }
}


void mousePressed() {
  count = count + 1;
  // int thiscount = 0;
  if (count%3 ==0) {
    xpos=int(random(30, width-30));
    ypos=int(random(10, height-10));
  }
  else {
    ypos = ypos+50;
  }


nopacity = int(random(100, 255));
// text(message, xpos, ypos);
Zoog b = new Zoog(xpos, ypos, message, nopacity);
zoog =(Zoog[]) append(zoog, b);

}

boolean timelag(int time, int number){
  int thattime = time;
  if(millis()-thattime>2000){
    thatnumber = number;
    fadeout = true;
  }
  else 
   fadeout = false;


  return fadeout;
}

class Zoog {
  int x;
  int y;
  String thatmessage;

  int opaci =0;

  Zoog(int xpo, int ypo, String thismessage, int opa) {
    x = xpo;
    y = ypo;
    thatmessage = thismessage;

    opaci = opa;
  }

  void jiggle() {

    x = x+int(random(-2, 2));
    y = y+int(random(-2, 2));
  }

  void display() {

    fill(0, opaci);
    text(thatmessage, x, y);
    print("x position is "+ x);
    print("y position is "+y);
  }

  void disappear() {
    for (int j=0; j<255; j++) {
      opaci = opaci -j;
    }
  }
}
4

2 に答える 2

1

他の投稿を初めて読んだとき、あなたの目標を誤解しました。とにかく、私はあなたのコードを少し調整して、進むべき道を理解するのに役立つかもしれません. しかし、私はそれをArrayListに移動しなかったので、以下のこのコードはちょっとひどいです...おそらく、物事を明確にするのに役立つだけです...

Zoog[]zoog = new Zoog[1];
float count=0;
int xpos =0;
int ypos =0;
String message="haha";
int ntextsize = 20;
int nopacity =200;
int thistime = 0;
int thiscount = 0;
//Zoog zoog;

void setup() {
  size(400, 400);
  xpos = int(random(width/2-200, width/2+40));
  ypos = int(random(height/2, height/2-40));
  zoog[0] = new Zoog(xpos, ypos, message, nopacity);
}

void draw() {
  background(255);

  for (int i=0; i<zoog.length; i++) {
    zoog[i].jiggle();
    zoog[i].display();  }
}




void mousePressed() {
  count = count + 1;
  // int thiscount = 0;
  if (count%3 ==0) {
    xpos=int(random(30, width-30));
    ypos=int(random(10, height-10));
  }
  else {
    ypos = ypos+50;
    //   thiscount = thiscount +1;
    //   thistime = millis();
    //  }
  }


  nopacity = int(random(100, 255));
  text(message, xpos, ypos);
  Zoog b = new Zoog(mouseX, mouseY, message, nopacity);
  zoog = (Zoog[]) append(zoog, b);

  zoog[zoog.length -2].disappear = true;
}





class Zoog {
  int x;
  int y;
  String thatmessage;
  boolean disappear;

  int opaci =0;

  Zoog(int xpo, int ypo, String thismessage, int opa) {
    x = xpo;
    y = ypo;
    thatmessage = thismessage;

    opaci = opa;
  }

  void jiggle() {

    x = x+int(random(-2, 2));
    y = y+int(random(-2, 2));
  }

  void display() {
    if(disappear)
    disappear();
    fill(0, opaci);
    text(thatmessage, x, y);
  }

  void disappear() {

    opaci-=0.5;

  }
}
于 2013-05-15T22:16:19.733 に答える