Автономно останавливать и запускать анимацию на определенное время? - PullRequest
0 голосов
/ 22 февраля 2019

Посмотрите на мой класс дрожания внутри моего класса Trees:

class Trees {
  constructor(x, y) {
    this.x = x,
    this.y = y,
    this.l = this.x - 2,
    this.r = this.y + 2,
    this.a = 0

  }
  trunk() {
    noStroke();
    fill(126, 60, 1);
    rect(this.x + 3, this.y, 14, 40);
    triangle(this.x + 10, this.y + 30, this.x - 4, this.y + 40, this.x + 24, this.y + 40);
  }
  leaves() {
    fill(71, 215, 45);
    ellipse(this.x + 3, this.y - 5, 25);
    ellipse(this.x + 10, this.y - 15, 25);
    ellipse(this.x + 17, this.y - 5, 25);
  }
  shudder() {
    let d = dist(mouseX, mouseY, this.x, this.y);
    if (d < 50) {
      this.a = 4;
      if (this.x < this.l || this.x > this.r) {
        this.a = this.a * -1;
      }
    } else {
      this.a = 0;
    }
    this.x = this.x + this.a;
  }
}

Как вы можете видеть, я заставляю это дерево дрожать взад-вперед, когда я нажимаю на него, которое работает!Тем не менее, я пытаюсь смоделировать его дрожание, как будто он застрял с топором три раза.то есть я бы хотел, чтобы он начал судить полсекунды, затем остановился, начал, остановился, начал и затем окончательно остановился.

Я старался изо всех сил, как вы можете видеть здесь:

automated shaking tree attempt Но без кубиков.

Я должен упомянуть, что я использую библиотеку p5, но я не думаю, что это повлияет на это слишком сильно, за исключением предварительно определенных mouseX и mouseYфункции.

Кто-нибудь может решить эту загадку?

Большое спасибо!

...