summaryrefslogtreecommitdiffstats
path: root/src/controller/gamecontext.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/controller/gamecontext.ts')
-rw-r--r--src/controller/gamecontext.ts19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/controller/gamecontext.ts b/src/controller/gamecontext.ts
index 76ca7cc..4d86abf 100644
--- a/src/controller/gamecontext.ts
+++ b/src/controller/gamecontext.ts
@@ -10,14 +10,6 @@ import { getJSON } from '../util';
import { vec2 } from 'gl-matrix';
-function snapToGrid(out: vec2, a: vec2): void {
- const res = 64;
-
- vec2.scale(out, a, res);
- vec2.round(out, out);
- vec2.scale(out, out, 1 / res);
-}
-
export class GameContext {
public static async load(renderer: Renderer): Promise<GameContext> {
const [
@@ -66,10 +58,7 @@ export class GameContext {
}
private updateTime(time: number): number {
- let diff = 0;
- if (this.time !== null)
- diff = time - this.time;
-
+ const diff = this.time !== null ? time - this.time : 0;
this.time = time;
return diff;
@@ -78,8 +67,10 @@ export class GameContext {
private update(time: number): void {
const diff = this.updateTime(time);
- vec2.scaleAndAdd(this.entityPos, this.entityPos, this.entityMovement, diff * this.speed);
- snapToGrid(this.entityPos, this.entityPos);
+ if (vec2.sqrLen(this.entityMovement) > 0)
+ vec2.scaleAndAdd(this.entityPos, this.entityPos, this.entityMovement, diff * this.speed);
+ else
+ this.renderer.snapToGrid(this.entityPos, this.entityPos);
}
private render = (time: number) => {