~starkingdoms/starkingdoms

c5eda74317508dcbd231d68ac6f114aaafd8a9e3 — TerraMaster85 1 year, 8 months ago 10c7d11
scaling fixes (fix merge)
2 files changed, 25 insertions(+), 22 deletions(-)

M starkingdoms-client/src/hub.ts
M starkingdoms-client/src/rendering.ts
M starkingdoms-client/src/hub.ts => starkingdoms-client/src/hub.ts +6 -4
@@ 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) {

M starkingdoms-client/src/rendering.ts => starkingdoms-client/src/rendering.ts +19 -18
@@ 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;