Examples - Add Variable Timestep Example

This commit is contained in:
Marty Oehme 2018-07-20 14:56:09 +02:00
parent 5b7552216d
commit 828b39c1d0
4 changed files with 54 additions and 4 deletions

View file

@ -0,0 +1,48 @@
//void main() {
// double lastTime = performance.now();
// while(true) {
// double currentTime = performance.now();
// double delta = currentTime - lastTime;
//
// update(delta);
//
// lastTime = currentTime;
// }
//}
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) {
elapsed.start();
window.requestAnimationFrame(eventloop);
}
void eventloop(num time) {
int dt = elapsed.elapsedMilliseconds;
game.update(dt);
game.draw();
elapsed.reset();
id = window.requestAnimationFrame(eventloop);
}
void stop() {
window.cancelAnimationFrame(id);
}
void start() {
window.requestAnimationFrame(eventloop);
}
}