diff --git a/front/volume/src/components/NavBar.svelte b/front/volume/src/components/NavBar.svelte index 8de5531..b2866ff 100644 --- a/front/volume/src/components/NavBar.svelte +++ b/front/volume/src/components/NavBar.svelte @@ -27,28 +27,28 @@ {#if link.text === "Leaderboard"}
  • {/if} {#if link.text === "Spectate"}
  • {/if} {#if link.text === "Channels"}
  • {/if} {#if link.text === "Friends"}
  • {/if} @@ -62,7 +62,7 @@ {#if link.text === "History"}
  • {/if} @@ -111,17 +111,18 @@ .navigation-bar { flex-direction: column; align-items: stretch; + padding: 0; } .navigation-bar ul { flex-direction: column; align-items: center; justify-content: center; + margin: 4px; } .navigation-bar li { margin: 0; - padding: 1rem; text-align: center; } } diff --git a/front/volume/src/components/Pong/Game.ts b/front/volume/src/components/Pong/Game.ts index 94082fc..377c341 100644 --- a/front/volume/src/components/Pong/Game.ts +++ b/front/volume/src/components/Pong/Game.ts @@ -9,6 +9,7 @@ import { formatWebsocketData, Point, Rect } from "./utils"; const FPS = import.meta.env.VITE_FRONT_FPS; export class Game { + renderCanvas: HTMLCanvasElement; canvas: HTMLCanvasElement; context: CanvasRenderingContext2D; ball: Ball; @@ -21,11 +22,13 @@ export class Game { backgroundColor: string; constructor( + renderCanvas: HTMLCanvasElement, canvas: HTMLCanvasElement, context: CanvasRenderingContext2D, elementsColor: string, backgroundColor: string ) { + this.renderCanvas = renderCanvas; this.canvas = canvas; this.context = context; this.players = []; @@ -37,6 +40,8 @@ export class Game { } setInfo(data: GameInfo) { + this.renderCanvas.width = data.mapSize.x; + this.renderCanvas.height = data.mapSize.y; this.canvas.width = data.mapSize.x; this.canvas.height = data.mapSize.y; this.ball = new Ball( @@ -72,7 +77,7 @@ export class Game { start(socket: WebSocket) { if (this.my_paddle) { - this.canvas.addEventListener("mousemove", (e) => { + this.renderCanvas.addEventListener("pointermove", (e) => { this.my_paddle.move(e); const data: Point = this.my_paddle.rect.center; socket.send(formatWebsocketData(GAME_EVENTS.PLAYER_MOVE, data)); @@ -121,5 +126,7 @@ export class Game { max_width, this.context ); + + this.renderCanvas.getContext("2d").drawImage(this.canvas, 0, 0); } } diff --git a/front/volume/src/components/Pong/GameComponent.svelte b/front/volume/src/components/Pong/GameComponent.svelte index 2032d1d..a4917bd 100644 --- a/front/volume/src/components/Pong/GameComponent.svelte +++ b/front/volume/src/components/Pong/GameComponent.svelte @@ -3,30 +3,45 @@ import { GAME_EVENTS } from "./constants"; import { formatWebsocketData } from "./utils"; - export let gameCanvas: HTMLCanvasElement; export let gamePlaying: boolean; export let setupSocket: ( + renderCanvas: HTMLCanvasElement, canvas: HTMLCanvasElement, context: CanvasRenderingContext2D ) => void; export let socket: WebSocket; + let gameCanvas: HTMLCanvasElement; + let renderCanvas: HTMLCanvasElement; + //Get canvas and its context onMount(() => { - if (gameCanvas) { - const context: CanvasRenderingContext2D = gameCanvas.getContext( - "2d" - ) as CanvasRenderingContext2D; + if (gameCanvas && renderCanvas) { + const context: CanvasRenderingContext2D = gameCanvas.getContext("2d"); if (context) { - setupSocket(gameCanvas, context); + setupSocket(renderCanvas, gameCanvas, context); } } }); -