import * as Ship from 'view/ship' import * as Colors from 'view/colors' import * as Screen from 'screen' export interface State { context: CanvasRenderingContext2D, timestamp: number, ship: Ship.State, } export function init(): State { let canvas = document.querySelector('canvas') as HTMLCanvasElement let context = canvas.getContext("2d") as CanvasRenderingContext2D return { context, timestamp: 0, ship: Ship.init(), } } export function update(state: State, timestamp: number) { let delta = timestamp - state.timestamp state.timestamp = timestamp Ship.update(state.ship, state.timestamp, delta) } export function view(state: State) { // Clear state.context.fillStyle = Colors.colors.blue state.context.fillRect(0, 0, Screen.width, Screen.height) Ship.view(state.context, state.ship) }