import 'dart:html'; import 'package:browserloop/game/Game.dart'; import 'package:browserloop/game/LoopExample.dart'; /// The Variable Timestep Loop. /// /// Perhaps one of the most widely used loops /// in games for many years. Many game frameworks /// make use of a loop similar to this. class VariableTimestep implements LoopExample { Game game; num id; Stopwatch elapsed = new Stopwatch(); VariableTimestep(Game this.game); void eventloop(num time) { int dt = elapsed.elapsedMilliseconds; game.update(dt); game.draw(); elapsed.reset(); id = window.requestAnimationFrame(eventloop); } // Starting and stopping the loop for the example page void stop() { elapsed.stop(); window.cancelAnimationFrame(id); } void start() { elapsed.start(); elapsed.reset(); window.requestAnimationFrame(eventloop); } }