~starkingdoms/starkingdoms

47415687bcc7819dbed712e72ddfc5c29a462c5e — TerraMaster85 1 year, 11 months ago 187a994
Starfield parallax (subpixel motion!!!)
1 files changed, 21 insertions(+), 10 deletions(-)

M starkingdoms-client/src/rendering.ts
M starkingdoms-client/src/rendering.ts => starkingdoms-client/src/rendering.ts +21 -10
@@ 33,8 33,8 @@ export function startRender() {
    starfield: {
      sprite: new PIXI.TilingSprite(
        PIXI.Texture.from(tex_starfield),
        window.innerWidth,
        window.innerHeight,
        window.innerWidth,
        //1024,
        //1024,
      ),


@@ 45,8 45,8 @@ export function startRender() {
  };

  global.rendering!.app.stage.addChild(global.rendering!.starfield.sprite);
  /*global.rendering!.starfield.sprite.height = 512;
  global.rendering!.starfield.sprite.width = 512;*/
  global.rendering!.starfield.sprite.height = window.innerHeight + 768;
  global.rendering!.starfield.sprite.width = window.innerWidth + 768;

  app.ticker.add(() => {
    global.rendering!.app.stage.x =


@@ 54,14 54,25 @@ export function startRender() {
    global.rendering!.app.stage.y =
      -player()?.transform.y! + window.innerHeight / 2;

    global.rendering!.starfield.sprite.x = Math.floor(global.parts_map.get(global.me?.part_id).transform.x / 512) * 512 - (global.rendering!.starfield.sprite.width / 2);
    global.rendering!.starfield.sprite.y = Math.floor(global.parts_map.get(global.me?.part_id).transform.y / 512) * 512 - (global.rendering!.starfield.sprite.height / 2);
    global.rendering!.starfield.sprite.height = window.innerWidth;
    global.rendering!.starfield.sprite.width = window.innerHeight;

    // Starfield
    //global.rendering!.starfield.sprite.tilePosition.x = global.rendering!.starfield.off_x % 512;
    //global.rendering!.starfield.sprite.tilePosition.y = global.rendering!.starfield.off_y % 512;
    global.rendering!.starfield.off_x =
      ((global.parts_map.get(global.me?.part_id).transform.x * 3) / 4) % 768;
    global.rendering!.starfield.off_y =
      ((global.parts_map.get(global.me?.part_id).transform.y * 3) / 4) % 768;
    global.rendering!.starfield.sprite.x =
      Math.floor(global.parts_map.get(global.me?.part_id).transform.x / 768) *
        768 -
      global.rendering!.starfield.sprite.width / 2 +
      384;
    global.rendering!.starfield.sprite.y =
      Math.floor(global.parts_map.get(global.me?.part_id).transform.y / 768) *
        768 -
      global.rendering!.starfield.sprite.height / 2 +
      384;
    global.rendering!.starfield.sprite.tilePosition.x =
      global.rendering!.starfield.off_x;
    global.rendering!.starfield.sprite.tilePosition.y =
      global.rendering!.starfield.off_y;

    for (let [id, part] of global.parts_map) {
      let part_sprite;