diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-11 21:15:10 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-11 21:15:10 +0100 |
| commit | ec7515798411b54b3e5c235eb71b2ea3030dcd62 (patch) | |
| tree | db2dc6cffaca41cb2bb8fd6625e09ed4f72b40bc /test-client | |
| parent | 46edf5581824207c01e3f1923fcec9929bd59e4d (diff) | |
| download | hurrycurry-ec7515798411b54b3e5c235eb71b2ea3030dcd62.tar hurrycurry-ec7515798411b54b3e5c235eb71b2ea3030dcd62.tar.bz2 hurrycurry-ec7515798411b54b3e5c235eb71b2ea3030dcd62.tar.zst | |
test-client: only send inputs when changed
Diffstat (limited to 'test-client')
| -rw-r--r-- | test-client/main.ts | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/test-client/main.ts b/test-client/main.ts index e106a135..34291984 100644 --- a/test-client/main.ts +++ b/test-client/main.ts @@ -72,8 +72,6 @@ document.addEventListener("DOMContentLoaded", async () => { document.addEventListener("keydown", ev => keyboard(ev, true)) document.addEventListener("keyup", ev => keyboard(ev, false)) document.addEventListener("contextmenu", ev => ev.preventDefault()) - const tick_int = setInterval(tick_update, 1000 / 25); - ws.addEventListener("close", () => clearInterval(tick_int)) }) export interface ItemData { @@ -460,12 +458,14 @@ function set_interact(edge: boolean, hand: number) { if (!edge) interacting = undefined } -function tick_update() { +function send_movement() { const p = players.get(my_id) if (!p) return - send({ player: my_id, type: "movement", pos: [p.position.x, p.position.y], dir: [p.input_direction.x, p.input_direction.y], boost: p.boosting }) + send({ player: my_id, type: "movement", pos: [p.position.x, p.position.y], dir: [p.input_direction.x, p.input_direction.y], boost: p.input_boost }) } +let last_direction: V2 = { x: 0, y: 0 } +let last_boost: boolean = false function frame_update(dt: number) { const p = players.get(my_id) if (!p) return @@ -479,6 +479,10 @@ function frame_update(dt: number) { if (interacting) direction.x *= 0, direction.y *= 0 p.input_direction = direction p.input_boost = keys_down.has("KeyK") + if (last_boost != p.input_boost || last_direction.x != p.input_direction.x || last_direction.y != p.input_direction.y) + send_movement() + last_direction = p.input_direction + last_boost = p.input_boost players.forEach(p => update_movement(p, dt)) |