From b3e649e9cf9756ed92c090d01fe53dc48aa43d05 Mon Sep 17 00:00:00 2001 From: vvandenb Date: Mon, 13 Mar 2023 15:29:47 +0100 Subject: [PATCH] * Added sound to game --- back/volume/src/pong/dtos/GameUpdate.ts | 1 + back/volume/src/pong/game/Game.ts | 1 + front/volume/public/audio/edge_hit.wav | Bin 0 -> 8012 bytes front/volume/public/audio/paddle_hit.wav | Bin 0 -> 3372 bytes front/volume/public/audio/score.wav | Bin 0 -> 78448 bytes front/volume/src/components/Pong/Ball.ts | 2 ++ front/volume/src/components/Pong/Game.ts | 20 ++++++++++++++++-- .../src/components/Pong/dtos/GameUpdate.ts | 1 + 8 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 front/volume/public/audio/edge_hit.wav create mode 100644 front/volume/public/audio/paddle_hit.wav create mode 100644 front/volume/public/audio/score.wav diff --git a/back/volume/src/pong/dtos/GameUpdate.ts b/back/volume/src/pong/dtos/GameUpdate.ts index 9eefbea..4804119 100644 --- a/back/volume/src/pong/dtos/GameUpdate.ts +++ b/back/volume/src/pong/dtos/GameUpdate.ts @@ -2,6 +2,7 @@ import { type Point } from '../game/utils' export class GameUpdate { paddlesPositions!: Point[] + ballSpeed!: Point ballPosition!: Point scores!: number[] } diff --git a/back/volume/src/pong/game/Game.ts b/back/volume/src/pong/game/Game.ts index 5d07d95..58c8448 100644 --- a/back/volume/src/pong/game/Game.ts +++ b/back/volume/src/pong/game/Game.ts @@ -157,6 +157,7 @@ export class Game { const data: GameUpdate = { paddlesPositions: this.players.map((p) => p.paddle.rect.center), + ballSpeed: this.ball.speed, ballPosition: this.ball.rect.center, scores: this.players.map((p) => p.score) } diff --git a/front/volume/public/audio/edge_hit.wav b/front/volume/public/audio/edge_hit.wav new file mode 100644 index 0000000000000000000000000000000000000000..f50262a342166822244255abc70fdc7e921dbf36 GIT binary patch literal 8012 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 literal 0 HcmV?d00001 diff --git a/front/volume/public/audio/paddle_hit.wav b/front/volume/public/audio/paddle_hit.wav new file mode 100644 index 0000000000000000000000000000000000000000..d413a24a39aca478b5129378fc5b5a0c03b5193e GIT binary patch literal 3372 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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 R4nsNnMDpTk*;)Q{{|AE37F_@U literal 0 HcmV?d00001 diff --git a/front/volume/src/components/Pong/Ball.ts b/front/volume/src/components/Pong/Ball.ts index 00ef960..4f4465c 100644 --- a/front/volume/src/components/Pong/Ball.ts +++ b/front/volume/src/components/Pong/Ball.ts @@ -1,3 +1,4 @@ +import { DEFAULT_BALL_INITIAL_SPEED } from "./constants"; import { Point, Rect } from "./utils"; export class Ball { @@ -6,6 +7,7 @@ export class Ball { constructor(spawn: Point, size: Point = new Point(20, 20)) { this.rect = new Rect(spawn, size); + this.speed = DEFAULT_BALL_INITIAL_SPEED; } draw(context: CanvasRenderingContext2D, color: string) { diff --git a/front/volume/src/components/Pong/Game.ts b/front/volume/src/components/Pong/Game.ts index ce835c7..5c87ee3 100644 --- a/front/volume/src/components/Pong/Game.ts +++ b/front/volume/src/components/Pong/Game.ts @@ -12,6 +12,7 @@ export class Game { renderCanvas: HTMLCanvasElement; canvas: HTMLCanvasElement; context: CanvasRenderingContext2D; + ballLastVelocity: Point; ball: Ball; players: Player[]; my_paddle: Paddle; @@ -23,6 +24,10 @@ export class Game { ranked: boolean; youAreReady: boolean; + private readonly score_audio = new Audio('audio/score.wav'); + private readonly paddle_hit_audio = new Audio('audio/paddle_hit.wav'); + private readonly edge_hit_audio = new Audio('audio/edge_hit.wav'); + constructor( renderCanvas: HTMLCanvasElement, canvas: HTMLCanvasElement, @@ -83,14 +88,12 @@ export class Game { } start(socket: WebSocket) { - // if (this.my_paddle) { 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)); }); console.log("Game started!"); - // } } update(data: GameUpdate) { @@ -101,8 +104,21 @@ export class Game { if (this.players[1].paddle != this.my_paddle) { this.players[1].paddle.rect.center = data.paddlesPositions[1]; } + + if (data.ballSpeed.x * this.ball.speed.x < 0) { + this.paddle_hit_audio.play(); + } + if (data.ballSpeed.y * this.ball.speed.y < 0) { + this.edge_hit_audio.play(); + } + this.ball.speed = data.ballSpeed; + this.ball.rect.center = data.ballPosition; + for (let i = 0; i < data.scores.length; i++) { + if (this.players[i].score != data.scores[i]) { + this.score_audio.play(); + } this.players[i].score = data.scores[i]; } } diff --git a/front/volume/src/components/Pong/dtos/GameUpdate.ts b/front/volume/src/components/Pong/dtos/GameUpdate.ts index 789bf38..1460410 100644 --- a/front/volume/src/components/Pong/dtos/GameUpdate.ts +++ b/front/volume/src/components/Pong/dtos/GameUpdate.ts @@ -2,6 +2,7 @@ import type { Point } from "../utils"; export class GameUpdate { paddlesPositions!: Point[]; + ballSpeed!: Point; ballPosition!: Point; scores!: number[]; }