diff --git a/client/svelte-client/src/Canvas.svelte b/client/svelte-client/src/Canvas.svelte index 225e4fe..0f26dec 100644 --- a/client/svelte-client/src/Canvas.svelte +++ b/client/svelte-client/src/Canvas.svelte @@ -22,6 +22,7 @@ engineCanvas.set(engineCanvas); width.set(canvas.width); height.set(canvas.height); + // field.set_dimensions(canvas.width, canvas.height); // setup entities listeners.forEach(async entity => { @@ -68,8 +69,6 @@ function tick(dt) { field.tick([], dt); - let objects = JSON.parse(field.objects()); - render(objects, dt); } function render(objects, dt) { @@ -93,8 +92,9 @@ } function handleResize () { - width.set(window.innerWidth); - height.set(window.innerHeight); + // TODO: Resolution scaling needs to be implemented in wasm module. + // width.set(window.innerWidth); + // height.set(window.innerHeight); pixelRatio.set(window.devicePixelRatio); } diff --git a/client/svelte-client/src/game/engine.ts b/client/svelte-client/src/game/engine.ts index f81bee6..97f643f 100644 --- a/client/svelte-client/src/game/engine.ts +++ b/client/svelte-client/src/game/engine.ts @@ -3,8 +3,8 @@ import {getContext, onMount} from "svelte"; export const engineCanvas = writable(); export const engineCtx = writable(); -export const width = writable(window.innerWidth); -export const height = writable(window.innerHeight); +export const width = writable(800); +export const height = writable(600); export const pixelRatio = writable(window.devicePixelRatio); // A more convenient store for grabbing all game props diff --git a/client/wasm/src/lib.rs b/client/wasm/src/lib.rs index ad70dbc..08358fb 100644 --- a/client/wasm/src/lib.rs +++ b/client/wasm/src/lib.rs @@ -147,6 +147,12 @@ impl FieldWrapper { let json = json!(objs); serde_json::to_string(&json).unwrap() } + + pub fn set_dimensions(&mut self, width_js: JsValue, height_js: JsValue) { + let width = width_js.as_f64().unwrap(); + let height = height_js.as_f64().unwrap(); + self.field.set_dimensions(width as u16, height as u16); + } } #[derive(Clone)] diff --git a/pong/src/game_field.rs b/pong/src/game_field.rs index e89ac2d..63b8e61 100644 --- a/pong/src/game_field.rs +++ b/pong/src/game_field.rs @@ -219,6 +219,11 @@ impl Field { pub fn objs(&self) -> Vec<&Rc>>> { self.objs.iter().collect() } + + pub fn set_dimensions(&mut self, width: u16, height: u16) { + self.width = width; + self.height = height; + } } impl DefaultGameObject {