aboutsummaryrefslogtreecommitdiff
path: root/test-client
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-01-11 21:15:10 +0100
committermetamuffin <metamuffin@disroot.org>2026-01-11 21:15:10 +0100
commitec7515798411b54b3e5c235eb71b2ea3030dcd62 (patch)
treedb2dc6cffaca41cb2bb8fd6625e09ed4f72b40bc /test-client
parent46edf5581824207c01e3f1923fcec9929bd59e4d (diff)
downloadhurrycurry-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.ts12
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))