From c5eda74317508dcbd231d68ac6f114aaafd8a9e3 Mon Sep 17 00:00:00 2001 From: TerraMaster85 Date: Sun, 7 Apr 2024 13:26:03 -0400 Subject: [PATCH] scaling fixes (fix merge) --- starkingdoms-client/src/hub.ts | 10 +++++--- starkingdoms-client/src/rendering.ts | 37 ++++++++++++++-------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/starkingdoms-client/src/hub.ts b/starkingdoms-client/src/hub.ts index 2a372b21f9dd72a92584f7dc9e68e457e2c1b358..9f01845fe36d75b14a0dc16970d10498e8d76596 100644 --- a/starkingdoms-client/src/hub.ts +++ b/starkingdoms-client/src/hub.ts @@ -149,8 +149,10 @@ export async function hub_connect( document.onmousedown = (e) => { if (global.me !== null) { let me_transform = global.parts_map.get(global.me?.part_id)!.transform; - let x = e.clientX - window.innerWidth / 2 + me_transform.x; - let y = e.clientY - window.innerHeight / 2 + me_transform.y; + let x = e.clientX / global.scale - window.innerWidth / 2 / global.scale + me_transform.x; + let y = e.clientY / global.scale - window.innerHeight / 2 / global.scale + me_transform.y; + + console.log(x,y); let button: ButtonType; if (e.button == 0) { @@ -175,8 +177,8 @@ export async function hub_connect( document.onmouseup = (e) => { if (global.me !== null) { let me_transform = global.parts_map.get(global.me?.part_id)!.transform; - let x = e.clientX - window.innerWidth / 2 + me_transform.x; - let y = e.clientY - window.innerHeight / 2 + me_transform.y; + let x = e.clientX / global.scale - window.innerWidth / 2 / global.scale + me_transform.x; + let y = e.clientY / global.scale - window.innerHeight / 2 / global.scale + me_transform.y; let button: ButtonType; if (e.button == 0) { diff --git a/starkingdoms-client/src/rendering.ts b/starkingdoms-client/src/rendering.ts index 7ee2b2454234f34ed8480dfd75f233cb3613e4e6..8d68577db5b2c16ba12ec52ba690958213e2b333 100644 --- a/starkingdoms-client/src/rendering.ts +++ b/starkingdoms-client/src/rendering.ts @@ -76,24 +76,25 @@ export function startRender() { // TODO: refactor, make parallax configurable // Main starfield - global.rendering!.starfield.sprite.height = - window.innerHeight + 384 * global.scale; - global.rendering!.starfield.sprite.width = - window.innerWidth + 384 * global.scale; + const sprite_size_scale_basis = 3/4; + const sprite_size_px_basis = 512; + const sprite_size = sprite_size_px_basis * sprite_size_scale_basis / global.scale; + global.rendering!.starfield.sprite.height = window.innerHeight / global.scale + sprite_size; + global.rendering!.starfield.sprite.width = window.innerWidth / global.scale + sprite_size; global.rendering!.starfield.off_x = - ((player()?.transform.x! * 3) / 4) % 384; + (player()?.transform.x! * sprite_size_scale_basis) % sprite_size; global.rendering!.starfield.off_y = - ((player()?.transform.y! * 3) / 4) % 384; + (player()?.transform.y! * sprite_size_scale_basis) % sprite_size; global.rendering!.starfield.sprite.x = - Math.floor(player()?.transform.x! / 384) * 384 - + Math.floor(player()?.transform.x! / sprite_size) * sprite_size - global.rendering!.starfield.sprite.width / 2 + - 192; + sprite_size / 2; global.rendering!.starfield.sprite.y = - Math.floor(player()?.transform.y! / 384) * 384 - + Math.floor(player()?.transform.y! / sprite_size) * sprite_size - global.rendering!.starfield.sprite.height / 2 + - 192; + sprite_size / 2; global.rendering!.starfield.sprite.tilePosition.x = global.rendering!.starfield.off_x; @@ -101,20 +102,20 @@ export function startRender() { global.rendering!.starfield.off_y; // Near starfield - global.rendering!.starfield_near.sprite.height = window.innerHeight + 768; - global.rendering!.starfield_near.sprite.width = window.innerWidth + 768; + global.rendering!.starfield_near.sprite.height = window.innerHeight + 2*sprite_size; + global.rendering!.starfield_near.sprite.width = window.innerWidth + 2*sprite_size; - global.rendering!.starfield_near.off_x = (player()?.transform.x! / 2) % 768; - global.rendering!.starfield_near.off_y = (player()?.transform.y! / 2) % 768; + global.rendering!.starfield_near.off_x = (player()?.transform.x! / 2) % (2*sprite_size); + global.rendering!.starfield_near.off_y = (player()?.transform.y! / 2) % (2*sprite_size); global.rendering!.starfield_near.sprite.x = - Math.floor(player()?.transform.x! / 768) * 768 - + Math.floor(player()?.transform.x! / 2*sprite_size) * 2*sprite_size - global.rendering!.starfield_near.sprite.width / 2 + - 384; + sprite_size; global.rendering!.starfield_near.sprite.y = - Math.floor(player()?.transform.y! / 768) * 768 - + Math.floor(player()?.transform.y! / 2*sprite_size) * 2*sprite_size - global.rendering!.starfield_near.sprite.height / 2 + - 384; + sprite_size; global.rendering!.starfield_near.sprite.tilePosition.x = global.rendering!.starfield_near.off_x;