From 5372d1b4173234a5066010a4ca973a5b1ad2a629 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 31 Oct 2018 23:02:41 +0100 Subject: Move game logic to a new module --- src/index.ts | 52 ++-------------------------------------------------- 1 file changed, 2 insertions(+), 50 deletions(-) (limited to 'src/index.ts') diff --git a/src/index.ts b/src/index.ts index 4a06ab2..a5ac4a2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,61 +1,13 @@ -import MapData from './model/data/MapData'; +import { GameContext } from './controller/gamecontext'; -import { vec2 } from 'gl-matrix'; - -import { getJSON } from './util'; -import { loadSimpleEntity } from './view/entity'; -import DirectionHandler from './view/input/DirectionHandler'; -import { loadMap } from './view/map'; import Renderer from './view/renderer/Renderer'; -const entityPos = vec2.create(); -const entityMovement = vec2.create(); - window.onload = async () => { const canvas = document.getElementById('rpgedit') as HTMLCanvasElement; if (!canvas) return; - const input = new DirectionHandler(); - input.addListener((v) => { - if (vec2.sqrLen(v) > 0) - vec2.normalize(entityMovement, v); - else - vec2.copy(entityMovement, [0, 0]); - }); - const renderer = new Renderer(canvas); - const map = new MapData(await getJSON('resources/map/test.json')); - const mapView = await loadMap(renderer, map); - - const entity = await loadSimpleEntity(renderer, 'simple_square'); - - let prevTime: number|null = null; - - const render = (time: number) => { - const res = 64; - - let diff = 0; - if (prevTime !== null) - diff = time - prevTime; - prevTime = time; - - vec2.scaleAndAdd(entityPos, entityPos, entityMovement, diff / 100); - vec2.scale(entityPos, entityPos, res); - vec2.round(entityPos, entityPos); - vec2.scale(entityPos, entityPos, 1 / res); - - renderer.setCenter(entityPos); - renderer.clear(); - - mapView.render(); - - renderer.setTranslation(entityPos); - entity.render(); - - window.requestAnimationFrame(render); - }; - - window.requestAnimationFrame(render); + await GameContext.load(renderer); }; -- cgit v1.2.3