From 47415687bcc7819dbed712e72ddfc5c29a462c5e Mon Sep 17 00:00:00 2001 From: TerraMaster85 Date: Tue, 9 Jan 2024 16:20:19 -0500 Subject: [PATCH] Starfield parallax (subpixel motion!!!) --- starkingdoms-client/src/rendering.ts | 31 +++++++++++++++++++--------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/starkingdoms-client/src/rendering.ts b/starkingdoms-client/src/rendering.ts index e6f106de5b2bf67cf95393b8f06dfe70975f9f02..c44a9decaa97124897081831b283ee5e5104b5ca 100644 --- a/starkingdoms-client/src/rendering.ts +++ b/starkingdoms-client/src/rendering.ts @@ -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;