Animation : class

Pour obtenir un temps écoulé :

let startTime = new Date().getTime();
function main() {

 //pour avoir un temps de simu depuis le départ
   let currTime = new Date().getTime(),
       dt = ((currTime - startTime)/1000);
       
  update(dt);
  render();

  requestId = window.requestAnimationFrame(main);
}

temps quasi constant


function main() {

  let now = Date.now(),
    dt = (now - lastTime) / 1000.0;
       
  update(dt);
  render();
  lastTime = now;
  requestId = window.requestAnimationFrame(main);

}

on pourra écrire la classe suivante :

class Oxilo extends AnimatedBloc {

  constructor(elt, { speed }) {
    
    super(elt, {
      speed
    });
  }

  static construct(elt, { speed = 1 } = {}) {
    return new Oxilo(elt, { speed });
  }

  update(dt) {   
   this.x = Math.cos(2*Math.PI*(dt))*50;
   this.y = Math.sin(Math.PI*(dt))*50;
  }

}