controller: gamecontext: count actual game time

This commit is contained in:
Matthias Schiffer 2018-11-11 00:15:24 +01:00
parent 3c83dade65
commit 426b2c37ff
Signed by: neocturne
GPG key ID: 16EF3F64CB201D9C

View file

@ -41,7 +41,8 @@ export class GameContext implements CollidableGroup {
return [await loadMap(renderer, map), mkCollision(map.collision)];
}
private time: number|null = null;
private readonly initTime: number = performance.now();
private time = 0;
private readonly tick = 10; // ms per tick
private readonly maxSpeed = 0.04; // movement per tick
@ -93,7 +94,7 @@ export class GameContext implements CollidableGroup {
}
private updateTime(time: number): number {
const diff = this.time !== null ? time - this.time : 0;
const diff = Math.round(time / this.tick) - Math.round(this.time / this.tick);
this.time = time;
return diff;
@ -157,8 +158,9 @@ export class GameContext implements CollidableGroup {
this.updateStep();
}
private render = (time: number) => {
this.update(Math.round(time / this.tick));
private render = (curTime: number) => {
const time = curTime - this.initTime;
this.update(time);
this.renderer.setCenter(this.player.pos);
this.renderer.clear();