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;