From 5aae54fe65973282d2f2f4245b12ab85bed60c4d Mon Sep 17 00:00:00 2001 From: lagaffe <> Date: Tue, 28 Apr 2026 16:27:05 +0200 Subject: [PATCH] add text instructions for each game --- notes.md | 5 +++++ src/games/cleanupHS.js | 3 +++ src/games/fridge.js | 3 +++ src/games/game.js | 36 ++++++++++++++++++++++++++++++++---- src/games/opinator.js | 2 ++ src/games/smartMonday.js | 4 ++++ src/main.js | 2 +- 7 files changed, 50 insertions(+), 5 deletions(-) diff --git a/notes.md b/notes.md index 4b261b9..ca6b216 100644 --- a/notes.md +++ b/notes.md @@ -1,3 +1,8 @@ +### divers +- messages d'explication des jeux + - fade out au bout d'un certain temps + - fade out dès que le score du jeu bouge + ### mini game ideas #### fridge diff --git a/src/games/cleanupHS.js b/src/games/cleanupHS.js index e849b3d..65de506 100644 --- a/src/games/cleanupHS.js +++ b/src/games/cleanupHS.js @@ -35,6 +35,9 @@ export class CleanupHS extends TimedGame { this.trashLandingZone.addChild(trashcan); this.shelfLandingZone.addChild(shelf); + this._gameDesc.text = "Range le HS !!"; + this._instruction.text = "drag & drop les objets dans le bon contenant"; + this.trashLandingZone.layout = { width: "20%", height: "100%" }; this.shelfLandingZone.layout = { width: "20%", diff --git a/src/games/fridge.js b/src/games/fridge.js index 5334469..6e5c01c 100644 --- a/src/games/fridge.js +++ b/src/games/fridge.js @@ -31,6 +31,9 @@ export class Fridge extends TimedGame { this.timeout = this._bottleCount * 1500; // 1.5s per bottle + this._gameDesc.text = "Remplis le frigo !!"; + this._instruction.text = "drag & drop les club mate dans le frigo"; + const fridgeContainer = new Container(); fridgeContainer.layout = { width: "50%" }; const fridge = Sprite.from("frigo"); diff --git a/src/games/game.js b/src/games/game.js index f0254cb..39db0ce 100644 --- a/src/games/game.js +++ b/src/games/game.js @@ -1,17 +1,45 @@ -import { Container, RenderLayer } from "pixi.js"; +import { Container, RenderLayer, Text } from "pixi.js"; export class Game { constructor() { this._difficulty = 1; this.won = false; + this.gameContainer = new Container(); // main container, to add the game to a node, add this container as a child this.gameContainer.layout = true; - /* - this._uiLayer = new Container(); - this._gameObjectsLayer = new Container();*/ + this._uiLayer = new RenderLayer(); this._gameObjectsLayer = new RenderLayer(); this._gameObjectsLayer.sortableChildren = true; + + this._gameDesc = new Text({ + text: "", + style: { + fontFamily: "Arial", + fontSize: 30, + fill: 0x000000, + align: "center", + }, + }); + this._instruction = new Text({ + text: "", + style: { + fontFamily: "Arial", + fontSize: 30, + fill: 0x000000, + align: "center", + }, + }); + this._gameDesc.layout = { position: "absolute", left: "40%" }; + this._instruction.layout = { + position: "absolute", + left: "40%", + top: "40%", + }; + + this._addUiChild(this._gameDesc); + this._addUiChild(this._instruction); + this.gameContainer.addChild(this._gameObjectsLayer); this.gameContainer.addChild(this._uiLayer); } diff --git a/src/games/opinator.js b/src/games/opinator.js index 0c2d454..e096b19 100644 --- a/src/games/opinator.js +++ b/src/games/opinator.js @@ -12,6 +12,8 @@ export class Opinator extends TimedGame { this._lastMousePos = undefined; // use to compute the travelled distance this.timeout = this._baseGoalScore * 1000; // 1s per sprite len + this._gameDesc.text = "Répare opinator !!"; + this._instruction.text = "clique et agite la souris"; this._backgroundSprite = Sprite.from("opinator"); diff --git a/src/games/smartMonday.js b/src/games/smartMonday.js index 74d6cb1..d266a01 100644 --- a/src/games/smartMonday.js +++ b/src/games/smartMonday.js @@ -6,11 +6,15 @@ export class SmartMonday extends TimedGame { constructor(ticker) { super(10000, ticker); + this._gameDesc.text = "Organise le smart monday !!"; + this._instruction.text = "spam le clavier"; + this._goal = 100 * this._difficulty; // number of characters this.timeout = 1000 * (this._goal / 10); // 10 chars per second this._currentString = ""; this._keyEventHandle = undefined; + this.gameContainer.layout = { width: "100%", height: "100%" }; } reset() { diff --git a/src/main.js b/src/main.js index 034cfbd..f3fa10c 100644 --- a/src/main.js +++ b/src/main.js @@ -100,7 +100,7 @@ function switchToGame(gameContainer, newGame) { const fridge = new Fridge(app.ticker); const smartMonday = new SmartMonday(app.ticker); const cleanupHS = new CleanupHS(root.width, root.height, app.ticker); - let currentGame = opinator; + let currentGame = cleanupHS; gameContainter.addChild(currentGame.gameContainer); root.addChild(gameContainter);