From 1da4ae9c4c8950a61994a3f8786de1823826d621 Mon Sep 17 00:00:00 2001 From: NigeParis Date: Sat, 13 Dec 2025 15:37:42 +0100 Subject: [PATCH] WIP bats left does not move --- frontend/src/pages/pong/pong.html | 4 ++-- frontend/src/pages/pong/pong.ts | 39 +++++++++++++++++++++++++++++++ src/pong/src/app.ts | 23 ++++++++++++++++++ 3 files changed, 64 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/pong/pong.html b/frontend/src/pages/pong/pong.html index 3a615f9..dae04ac 100644 --- a/frontend/src/pages/pong/pong.html +++ b/frontend/src/pages/pong/pong.html @@ -15,8 +15,8 @@
-
-
+
+
diff --git a/frontend/src/pages/pong/pong.ts b/frontend/src/pages/pong/pong.ts index c3fc2e6..0749b7c 100644 --- a/frontend/src/pages/pong/pong.ts +++ b/frontend/src/pages/pong/pong.ts @@ -81,6 +81,9 @@ async function whoami(socket: Socket) { }; + + + function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn { let socket = getSocket(); @@ -115,6 +118,42 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn * transport different data formats */ + + + + + const keys: Record = {}; + + document.addEventListener("keydown", (e) => { + keys[e.key.toLowerCase()] = true; + }); + + document.addEventListener("keyup", (e) => { + keys[e.key.toLowerCase()] = false; + }); + + setInterval(() => { + if (keys['w']) socket.emit("bat:move", "up"); + + + if (keys['s']) { + console.log('s pressed'); + socket.emit("bat:move", "down"); + + } + + + }, 16); + + + + const bat = document.getElementById("pong-bat.left") ; + + socket.on("bat:update", (y) => { + if (bat) + bat.style.top = `${y}px`; + }); + socket.on("MsgObjectServer", (data: { message: ClientMessage}) => { console.log('%csocket.on MsgObjectServer', color.yellow ); addPongMessage(`
${data.message.text}`); diff --git a/src/pong/src/app.ts b/src/pong/src/app.ts index 247bd98..8be15b2 100644 --- a/src/pong/src/app.ts +++ b/src/pong/src/app.ts @@ -76,6 +76,8 @@ declare module 'fastify' { io: Server<{ inviteGame: (data: ClientProfil) => void; message: (msg: string) => void; + pong_bat_left: (direction: "up" | "down") => void; + }>; } } @@ -90,9 +92,30 @@ async function onReady(fastify: FastifyInstance) { console.log(color.yellow, 'Connect at : https://' + machineName + ':8888/app/login'); } + let batY = 185; // shared bat position + const SPEED = 10; fastify.io.on('connection', (socket: Socket) => { + + socket.emit("bat:update", batY); + + socket.on('bat:move', (direction: "up" | "down") => { + if (direction === "up") { + batY -= SPEED; + console.log('w pressed UP'); + } + if (direction === "down") { + console.log('s pressed DOWN'); + + batY += SPEED; + } + // clamp inside field + batY = Math.max(0, Math.min(370, batY)); + + socket.emit("bat:update", batY); + }); + socket.on('message', (message: string) => { const obj: ClientMessage = JSON.parse(message) as ClientMessage; clientChat.set(socket.id, { user: obj.user, lastSeen: Date.now() });