Not sure why my array is not allowed to use a function (OOP)


Triangles[] tri = new Triangles[18];




void setup() {
  size(900, 900);
  background(0);
  for (int i = 0; i < tri.length; i++) {
    float y = 0;
    float x = 0;
    tri[i] = new Triangles(x, y);
  }
}

void draw() {
  background(0);

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


// ========================================================

class Triangles {

  int   savedTime = millis();

  float totalTime = 5000;
  float black = 0;

  float x;
  float y;

  Triangles(float tempX, float tempY) {

    x = tempX;
    y = tempY;
  }//constr 

  void display() {
    for (float x = 25; x < width; x+=50) {
      for (float y = 0; y < height; y+=50) {
        triangle(x, y, x+25, y+50, x-25, y+50);
      }
    }
  }


  void change() {
    int passedTime = millis() - savedTime;
    totalTime = random(0, 15000);
    if (passedTime > totalTime) {
      noStroke();
      fill(black);
      black += 1;
      if (black == 255) {
        black = 0;
        savedTime = millis();
      }
    }
  }
}//class  ------------>>>>>>>>>>>  was before change()
//