Проблема с использованием методов получения и установки в классе javascript p5.js, «Ошибка сценария. (: Строка 0)» - PullRequest
0 голосов
/ 09 января 2019

Я создал класс, который принимает массив векторных координат, а затем рисует листы, где находятся эти координаты. Я пишу геттер и сеттер, где вы можете изменить цвет этих листьев. Цвет листьев свирепствует от minHue и maxHue. Я получаю «Ошибка сценария. (: Строка 0)» при запуске класса, но не могу определить, что не так.

Я просмотрел код на предмет ошибок в любом случае, но не могу завершить их.

class drawLeaves {

  constructor(leafArray) {
    this.leafs = leafArray;
    this.randomColor = true;
    this.minHue = 0;
    this.maxHue = 0;
  }

  genLeaves(minDiam, maxDiam, minAlpha, maxAlpha) {

    if (this.randomColor) {
      var rdn0 = random(255);
      var rdn1 = random(255);
      this.minHue = min(rdn0, rdn1);
      this.maxHue = max(rdn0, rdn1);
    } else {
      var colors = this.leafColor;
      minHue = colors[0];
      maxHue = colors[1];
    }



    let i;
    for (i = 0; i < this.leafs.length; i++) {
        let h = map(i, 0, this.leafs.length, this.minHue, this.maxHue);
        let s = 255;
        let b = 255;
        let a = random(minAlpha, maxAlpha);
        fill(h, s, b, a);
        let diam = random(minDiam, maxDiam);
        let jitterX = random(-30, 30);
        let jitterY = random(-30, 30);  
        ellipse(this.leafs[i].x + jitterX, this.leafs[i].y + jitterY, diam, diam);
    }
  }



  draw() {
    this.genLeaves(0, 90, 0, 0.03);  // big leaves
    this.genLeaves(0, 15, 0, 0.25);  // small leaves

  }


  set leafColor(minHue, maxHue) {
    this.minHue = minHue;
    this.maxHue = maxHue;
    this.randomColor = false;
  }

  get leafColor() {
    return [this.minHue, this.maxHue]
  }
}

Нужна обратная связь, чтобы помочь устранить ошибку, большое спасибо.

1 Ответ

0 голосов
/ 09 января 2019

Когда я запускаю это в Babel REPL , я получаю следующую ошибку:

repl: setter should have exactly one param (48:2)

Согласно документации (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set#Description) сеттер должен иметь только 1 параметр.

Попробуйте выполнить рефакторинг, чтобы у вас был только 1 параметр, или измените его на:

setLeafColor(minHue, maxHue) {
    code
}
...