From b991b962f3b60bda1a33c8fddef99a343ce6ef94 Mon Sep 17 00:00:00 2001 From: goynov Date: Tue, 25 Nov 2025 17:45:50 +0200 Subject: [PATCH] resolves #4 --- .../InteractiveObjects/MazeQuizGame/MazeObject.js | 10 ++++++---- .../InteractiveObjects/MazeQuizGame/MazeQuizGame.js | 6 +++--- .../InteractiveObjects/MazeQuizGame/MazeQuizGame.vue | 3 ++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js b/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js index b718fe4..c5c1bf3 100644 --- a/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js +++ b/src/components/InteractiveObjects/MazeQuizGame/MazeObject.js @@ -11,7 +11,7 @@ class MazeObject { let _tf = { rotation: { - r: 3 * Math.PI / 2, f: 0, l: Math.PI / 2, b: 0 + r: 3 * Math.PI / 2, f: 0, l: Math.PI / 2, b: Math.PI }, pNext: { r: [-wallSize/2, wallSize/2], @@ -45,7 +45,7 @@ class MazeObject { e[0].position.set(0, 0, offsetZ + wallSize/2); - e[1].rotateY(_tf.rotation.b); + e[1].rotateY(_tf.rotation[elements[1] == 'door' ? 'f' : 'b']); e[2].rotateY(_tf.rotation.r); e[3].rotateY(_tf.rotation.f); @@ -155,12 +155,14 @@ class MazeObject { const floor = o.surface.clone(); const mt = floor.material.clone(); ['map', 'normalMap'].forEach(m=>{ - if (!mt[m]) return; + if (!mt[m]) return //console.log('missing', m); mt[m] = mt[m].clone(); mt[m].wrapS = mt[m].wrapT = RepeatWrapping; - mt[m].repeat = new Vector2(Math.floor(floorSize.width / wallSize), Math.floor(floorSize.depth / wallSize)); + mt[m].repeat = new Vector2(Math.floor(floorSize.width/wallSize), Math.floor(floorSize.depth/wallSize)); mt[m].needsUpdate = true; }); + mt.needsUpdate = true; + floor.material = mt; floor.position.set((bbox.l + bbox.r)/2, 0, bbox.f/2); floor.scale.set(floorSize.width, scale, floorSize.depth) root.add(floor); diff --git a/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.js b/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.js index ef4a790..0d6e1c4 100644 --- a/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.js +++ b/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.js @@ -12,8 +12,8 @@ const imgParams = { type: 'ImageObject', width: params.wallSize*0.033, height: params.wallSize*0.033, - value: 'arrow.png', - path: '/static/textures/' + value: 'arrow.webp', + path: '/static/meshes/quiz/' } const textParams = { @@ -147,7 +147,7 @@ class MazeQuizGame extends EventDispatcher { len: 3, objects:[ { - ...textParams, color:0xff0000, text: question.h, fontSize:0.033, position:[0,.44,2+.96], rotation:[0,Math.PI, 0] + ...textParams, color:0xff0000, text: question.h, fontSize:0.033, position:[0,.44,3+.96], rotation:[0,Math.PI, 0] } ] } diff --git a/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.vue b/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.vue index 1084d4a..b8a2781 100644 --- a/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.vue +++ b/src/components/InteractiveObjects/MazeQuizGame/MazeQuizGame.vue @@ -49,7 +49,8 @@ export default { return { styles:[ { title: 'Lake reeds', value: 'quiz.gltf' }, - { title: 'Grass and pavement pathway', value: 'quiz-s2.gltf' } + { title: 'Grass and pavement pathway', value: 'quiz-s2.gltf' }, + { title: 'Medieval Fortress', value: 'quiz-fortress.gltf' }, ] } },