From 8063f1c04c51a7931fbca55cef832f66ce0c4982 Mon Sep 17 00:00:00 2001 From: LuckyLaszlo Date: Thu, 22 Dec 2022 18:24:07 +0100 Subject: [PATCH] Minimal example GameSpectator.svelte page --- .../api_front/src/pages/game/Game.svelte | 6 +- .../src/pages/game/GameSpectator.svelte | 55 +++++++++++++++++++ .../api_front/src/pages/game/client/init.ts | 5 +- .../api_front/src/pages/game/client/pong.ts | 4 +- .../src/pages/game/client/pongSpectator.ts | 7 +-- 5 files changed, 64 insertions(+), 13 deletions(-) create mode 100644 srcs/requirements/svelte/api_front/src/pages/game/GameSpectator.svelte diff --git a/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte b/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte index f689bea8..b3ffc753 100644 --- a/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/game/Game.svelte @@ -4,10 +4,8 @@ import Header from '../../pieces/Header.svelte'; import { fade, fly } from 'svelte/transition'; - import * as enumeration from './shared_js/enums'; - import * as pong from "./client/pong" - import * as pongSpectator from "./client/pongSpectator" // TODO init spectator - + import * as pong from "./client/pong"; + // Pour Chérif: variables indiquant l'état du match import { matchEnded, matchAbort } from "./client/ws"; diff --git a/srcs/requirements/svelte/api_front/src/pages/game/GameSpectator.svelte b/srcs/requirements/svelte/api_front/src/pages/game/GameSpectator.svelte new file mode 100644 index 00000000..7b91b348 --- /dev/null +++ b/srcs/requirements/svelte/api_front/src/pages/game/GameSpectator.svelte @@ -0,0 +1,55 @@ + + + +
+ +
+ + + +
+ + diff --git a/srcs/requirements/svelte/api_front/src/pages/game/client/init.ts b/srcs/requirements/svelte/api_front/src/pages/game/client/init.ts index 51427255..ab832e93 100644 --- a/srcs/requirements/svelte/api_front/src/pages/game/client/init.ts +++ b/srcs/requirements/svelte/api_front/src/pages/game/client/init.ts @@ -24,11 +24,10 @@ export function computeMatchOptions(options: InitOptions) return matchOptions; } -export function initBase(options: InitOptions, gameAreaId: string) +export function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string) { - const matchOptions = computeMatchOptions(options); initMatchOptions(matchOptions); - initAudio(options.sound); + initAudio(sound); initPong(new GameArea(gameAreaId)); initGc(new GameComponentsClient(matchOptions, pong.ctx)); } diff --git a/srcs/requirements/svelte/api_front/src/pages/game/client/pong.ts b/srcs/requirements/svelte/api_front/src/pages/game/client/pong.ts index b2cb2b30..cf15df25 100644 --- a/srcs/requirements/svelte/api_front/src/pages/game/client/pong.ts +++ b/srcs/requirements/svelte/api_front/src/pages/game/client/pong.ts @@ -17,10 +17,10 @@ import { initStartFunction } from "./global.js" export function init(options: InitOptions, gameAreaId: string, token: string) { - initBase(options, gameAreaId); + const matchOptions = computeMatchOptions(options); + initBase(matchOptions, options.sound, gameAreaId); initStartFunction(start); - const matchOptions = computeMatchOptions(options); if (options.isSomeoneIsInvited) { initWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson); } diff --git a/srcs/requirements/svelte/api_front/src/pages/game/client/pongSpectator.ts b/srcs/requirements/svelte/api_front/src/pages/game/client/pongSpectator.ts index 9c4dcc34..e02b776b 100644 --- a/srcs/requirements/svelte/api_front/src/pages/game/client/pongSpectator.ts +++ b/srcs/requirements/svelte/api_front/src/pages/game/client/pongSpectator.ts @@ -1,10 +1,9 @@ import * as c from "./constants.js" +import type * as en from "../shared_js/enums.js" import { gameLoopSpectator } from "./gameLoop.js" import { drawLoop } from "./draw.js"; import { initWebSocketSpectator } from "./ws.js"; -import type { InitOptions } from "./class/InitOptions.js"; -export { InitOptions } from "./class/InitOptions.js"; import { initBase, destroyBase, computeMatchOptions } from "./init.js"; export { computeMatchOptions } from "./init.js"; @@ -13,9 +12,9 @@ import { pong, gc } from "./global.js" import { initStartFunction } from "./global.js" -export function init(options: InitOptions, gameAreaId: string, gameSessionId: string) +export function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string) { - initBase(options, gameAreaId); + initBase(matchOptions, sound, gameAreaId); initStartFunction(start); initWebSocketSpectator(gameSessionId);