From 6253fc32d75a2d47f2af94b3e1f0452740b2fc30 Mon Sep 17 00:00:00 2001 From: goynov Date: Thu, 30 Oct 2025 18:54:28 +0200 Subject: [PATCH] dashboard and progressbar --- public/static/meshes/award.glb | Bin 0 -> 152112 bytes src/components/GamePlaying/GamePlaying.vue | 5 + .../MazeQuizGame/MazeObject.js | 4 +- .../MazeQuizGame/MazeQuizGame.js | 16 ++- src/lib/Dashboard.js | 132 ++++++++++-------- src/lib/GameEngine.js | 18 +-- src/lib/Utils.js | 19 +++ 7 files changed, 123 insertions(+), 71 deletions(-) create mode 100644 public/static/meshes/award.glb diff --git a/public/static/meshes/award.glb b/public/static/meshes/award.glb new file mode 100644 index 0000000000000000000000000000000000000000..ef3183a441cc352dc60b14a783055eaca2367c46 GIT binary patch literal 152112 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 Cee$pX literal 0 HcmV?d00001 diff --git a/src/components/GamePlaying/GamePlaying.vue b/src/components/GamePlaying/GamePlaying.vue index 7ebb5f0..c2a624e 100644 --- a/src/components/GamePlaying/GamePlaying.vue +++ b/src/components/GamePlaying/GamePlaying.vue @@ -245,6 +245,11 @@ export default { a: ['Миграционният път на птиците, минаващ покрай Бургаските езера', 'Рядък вид птица', 'Местност в гр. Бургас'], h: 'Грешен отговор. Via Pontica наричаме миграционния път на птиците' }, + { + q: 'What stands for "Via Pontica"?', + a: ['The migration route of birds passing by the Burgas lakes', 'A rare species of bird', 'Location in Burgas'], + h: 'Wrong answer. Via Pontica is the name given to the migratory route of birds.' + }, { q: 'Къдроглавият пеликан...', a: ['...има огромен жълт клюн', '...има малък розов клюн', '...не се среща в България'], diff --git a/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js b/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js index 4102778..dfaba9e 100644 --- a/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js +++ b/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js @@ -1,6 +1,6 @@ -import { Group, Vector3, Matrix4, Mesh, Quaternion, PlaneGeometry, MeshStandardMaterial, DoubleSide } from 'three'; +import { Group, Vector3, Matrix4, Mesh, Quaternion, PlaneGeometry, MeshStandardMaterial, DoubleSide, CanvasTexture, SRGBColorSpace } from 'three'; import { InteractiveObject } from '../InteractiveObject'; -import { ActiveEvents } from '@dimforge/rapier3d'; +import Utils from '@/lib/Utils'; class MazeObject { constructor(engine, def, params = {}){ diff --git a/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.js b/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.js index d03e54a..1d1eb04 100644 --- a/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.js +++ b/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.js @@ -22,13 +22,17 @@ class MazeQuizGame { this.mazeObject = new MazeObject(engine, def) engine.addEventListener('collision', async e=>{ let ud = engine.phy.world.getCollider(e.handle2)?.parent()?.userData; - if (ud?.finish && engine.hero?.animationsMap?.win){ + if (ud?.finish){ if (e.started){ + engine.dashboard.updateProgress(1) engine.hero.animationsMap._idle = engine.hero.animationsMap.idle - engine.hero.animationsMap.idle = engine.hero.animationsMap.win - engine.hero.characterControls.cameraDelta = Math.PI; + if ( engine.hero.animationsMap?.win){ + engine.hero.animationsMap.idle = engine.hero.animationsMap.win + } await Utils.wait(1000); + engine.hero.characterControls.cameraDelta = Math.PI; engine.hero.characterControls.direction += Math.PI; + //engine.hero.model.rotation.y += Math.PI; await Utils.wait(10000); this.onfinish?.() }else{ @@ -36,6 +40,12 @@ class MazeQuizGame { engine.hero.characterControls.cameraDelta = 0 } } + if (ud.qid !== undefined && e.started){ + engine.dashboard.update({ + hint: ud.question.q + }) + engine.dashboard.updateProgress(ud.qid / questions.length) + } //console.log(e, ud, engine.hero?.animationsMap); }) } diff --git a/src/lib/Dashboard.js b/src/lib/Dashboard.js index 450352f..7c1d259 100644 --- a/src/lib/Dashboard.js +++ b/src/lib/Dashboard.js @@ -1,70 +1,88 @@ -import { MeshBasicMaterial, TextureLoader, LinearFilter, - Mesh, - OrthographicCamera, - PlaneGeometry, - RGBAFormat, - Scene } from 'three'; - -import { Text } from 'troika-three-text'; - +import { PlaneGeometry, CylinderGeometry, CanvasTexture, Group, Mesh, MeshStandardMaterial, DoubleSide } from "three"; +import Utils from "./Utils"; class DashBoard { - constructor(renderer, width, height) { + constructor(engine) { + let svg = p=>` + + + + + + + +${p.hint || ''} +Points +`; + + let img = new Image(), url, progressCylinder; + let canvas = document.createElement('canvas'); + let ctx = canvas.getContext('2d'); + let texture = new CanvasTexture(canvas) + let updating = false; + let params = {} + + img.addEventListener('load', function () { + ctx.drawImage(img, 0, 0, engine.w, engine.h); + URL.revokeObjectURL(url); + texture.needsUpdate = true; + updating = false; + }) - let _camera = new OrthographicCamera(width / -2, width / 2, height / 2, height / -2, 0, 1); + const dash = new Group(); - let _scene = new Scene(); + const dashGeometry = new PlaneGeometry(engine.aspect, 1); + const dashMesh = new Mesh(dashGeometry, new MeshStandardMaterial({ + roughness: 0, metalness:0.1, transparent: true, + map: texture + })) - //let _params = { minFilter: LinearFilter, magFilter: LinearFilter, format: RGBAFormat, stencilBuffer: true }; - this.points = 0; + dash.add(dashMesh); + engine.scene.add(dash) - let _texture = new TextureLoader().load('./assets/maze/x.png'); + engine.addEventListener('beforeRender', ()=>{ + dash.quaternion.copy(engine.camera.quaternion) + dash.position.copy(engine.camera.position) + dash.translateZ(-1.2 * engine.camera.zoom); + }) - let _material = new MeshBasicMaterial({ - map: _texture, - alphaTest: .5 - }); + this.update = function(p = {}){ + Object.assign(params, p); + if (updating) return false; + updating = true; + canvas.width = engine.w; + canvas.height = engine.h; + url = URL.createObjectURL(new Blob([svg(params)],{ type:"image/svg+xml;charset=utf-8" })); + img.src = url; + } - // _mesh = new Mesh( new PlaneGeometry( width * 0.015, width * 0.015 ), _material ); - let _text = new Text(); - _text.font = '/static/fonts/Montserrat-Regular.ttf'; - _text.text = 'Точки: 0'; - _text.anchorX = 'right'; - _text.anchorY = 'top'; - _text.fontSize = width * 0.015; - _text.position.set(width * .48, height * .47, 0); - _text.color = 0xffffff; - _text.outlineColor = 0x222222; - _text.outlineWidth = '5%'; - _text.outlineBlur = '5%'; - //_scene.add( _mesh ); - _scene.add(_text); - _text.sync(); + this.createProgressBar = function(){ + const padLeft = engine.aspect/30; + const progressGeometry = new CylinderGeometry( 0.5, 0.5, 1, 3, 1, false, 0, Math.PI ); + const staticCylinder = new Mesh( progressGeometry, new MeshStandardMaterial({ + roughness: 0, metalness:0.1, transparent: true, opacity:0.52, color: 0x55ff00, side: DoubleSide + }) ); + staticCylinder.rotation.set(-Math.PI/2, 0, Math.PI/2,) + staticCylinder.scale.set(0.02, engine.aspect/3, 0.02) + staticCylinder.position.set(padLeft - engine.aspect/3, 0.45, 0); + dash.add( staticCylinder ); - this.render = function (scene, camera) { - renderer.render(_scene, _camera); - }; + progressCylinder = new Mesh( progressGeometry, new MeshStandardMaterial({ + roughness: 0, metalness:0.1, transparent: true, opacity:0.77, color: 0x11ff00 + }) ); + progressCylinder.rotation.set(Math.PI/2, 0, Math.PI/2,) + progressCylinder.scale.set(0.017, 0, 0.017) + progressCylinder.position.set(0, 0.45, 0); + dash.add( progressCylinder ); + } - this.setSize = function (width, height) { - _camera.left = width / -2; - _camera.right = width / 2; - _camera.top = height / 2; - _camera.bottom = height / -2; - _camera.updateProjectionMatrix(); - - _text.position.set(width * .48, height * .47, 0); - }; - - this.addPoints = function (points) { - this.onpoints && this.onpoints(this.points + points, this.points); - this.points += points; - _text.text = 'точки: ' + this.points; - }; - - this.dispose = function () { - if (_mesh) _mesh.geometry.dispose(); - if (_material) _material.dispose(); - }; + this.updateProgress = function(value){ + const padLeft = engine.aspect/30; + progressCylinder.scale.y = engine.aspect/3 * value; + progressCylinder.position.x = padLeft - engine.aspect/2 + progressCylinder.scale.y/2 + } + this.createProgressBar(); + this.update(); } } diff --git a/src/lib/GameEngine.js b/src/lib/GameEngine.js index 3d5226e..8930e88 100644 --- a/src/lib/GameEngine.js +++ b/src/lib/GameEngine.js @@ -1,11 +1,8 @@ import * as THREE from 'three'; -import { GLTFLoader } from 'three/examples/jsm/Addons.js'; -import { DRACOLoader } from 'three/examples/jsm/Addons.js'; -import { OrbitControls } from 'three/examples/jsm/Addons.js'; +import { GLTFLoader, DRACOLoader, OrbitControls } from 'three/examples/jsm/Addons.js'; //import { Controller as OrbitControls } from './3rd-party/phy/3TH/Controller.js'; import { ViewportGizmo } from "three-viewport-gizmo"; import Stats from 'three/examples/jsm/libs/stats.module'; -//import { AnaglyphEffect } from './three/AnaglyphEffect'; import { AnaglyphEffect } from 'three/addons/effects/AnaglyphEffect.js'; import { StereoEffect } from 'three/addons/effects/StereoEffect.js'; import { MapControls } from 'three/addons/controls/MapControls.js'; @@ -25,7 +22,7 @@ class GameEngine extends THREE.EventDispatcher{ this.opts = opts; const gameEngine = this; - this.perspectiveCamera = new THREE.PerspectiveCamera(45, this.aspect, 0.01, 250); + this.perspectiveCamera = new THREE.PerspectiveCamera(45, this.aspect, 0.01, 200); this.raycaster = new THREE.Raycaster(); this.perspectiveCamera.position.set(0, 0, 10); @@ -99,7 +96,7 @@ class GameEngine extends THREE.EventDispatcher{ this.stereo = new StereoEffect(renderer); this.stereo.setSize(this.w, this.h); - const dashboard = new DashBoard(renderer, this.w, this.h); + const dashboard = new DashBoard(this); this.dashboard = dashboard; this.activeObjects = new THREE.Group(); @@ -132,13 +129,16 @@ class GameEngine extends THREE.EventDispatcher{ gameEngine.hero?.update(); gameEngine.mixers.forEach(m => m.update(delta)); gameEngine.handleXrAction(gameEngine, delta) + + gameEngine.dispatchEvent({type: 'beforeRender'}) + gameEngine.render(scene, gameEngine.camera); if (!renderer.xr.isPresenting) { gameEngine.gizmo?.render(); } - renderer.autoClear = false; - dashboard.render(); - renderer.autoClear = true; + // renderer.autoClear = false; + // dashboard.render(); + // renderer.autoClear = true; } renderer.setAnimationLoop(animate); diff --git a/src/lib/Utils.js b/src/lib/Utils.js index e6e9752..f063aa4 100644 --- a/src/lib/Utils.js +++ b/src/lib/Utils.js @@ -60,6 +60,25 @@ export default { .sort((a, b) => a.sort - b.sort).map(({ value }) => value) }, + drawOnCanvas(svg, width, height){ + return new Promise((resolve, reject)=>{ + let url = URL.createObjectURL(new Blob([svg],{ type:"image/svg+xml;charset=utf-8" })); + let img = new Image(); + let canvas = document.createElement('canvas'); + canvas.width = width; + canvas.height = height; + let ctx = canvas.getContext('2d'); + + img.addEventListener('load', function () { + ctx.drawImage(this, 0, 0, canvas.width, canvas.height); + URL.revokeObjectURL(url); + resolve(canvas); + }, { once: true }) + + img.src = url; + }) + }, + async wait(ms){ await new Promise((resolve, reject)=>{ setTimeout(resolve, ms)