a-maze-ing

This commit is contained in:
2025-10-27 08:42:23 +02:00
parent 7221733b47
commit 7afefec63f
5 changed files with 47 additions and 13 deletions
+25 -4
View File
@@ -225,10 +225,31 @@ export default {
// vp.object.rotation.y += -Math.PI/2;
let maze = new MazeQuizGame(gameEngine, {}, [
{q: 'Атанасовското езеро е дълго около 10км.', a:['Вярно', 'Невярно'], h: 'Грешен отговор. Атанасовското езеро е дълго около 10км.'},
{q: 'Колко дълбоко е Атанасовското езеро?', a:['Около 35см', 'Около 3.5м', 'Метър и половина'], h: 'Атанасовското езеро е дълбоко средно около 35см.'},
{q: 'Колко вида птици се наблюдават в Атанасовското езеро?', a: ['Повече от 330 вида', 'Над 10 вида', 'Над 450 вида'], h: 'В Атанасовското езеро са наблюдавани над 330 вида птици'},
{q: 'Какво е Via Pontica?', a: ['Миграционният път на птиците, минаващ покрай Бургаските езера', 'Рядък вид птица', 'Местност в гр. Бургас'], h: 'Via Pontica наричаме миграционния път на птиците'},
{
q: 'Атанасовското езеро е дълго около 10км.',
a:['Вярно', 'Невярно'],
h: 'Грешен отговор. Атанасовското езеро е дълго около 10км.'
},
{
q: 'Колко дълбоко е Атанасовското езеро?',
a:['Около 35см', 'Около 3.5м', 'Метър и половина'],
h: 'Грешен отговор. Атанасовското езеро е дълбоко средно около 35см.'
},
{
q: 'Колко вида птици се наблюдават в Атанасовското езеро?',
a: ['Повече от 330 вида', 'Над 10 вида', 'Над 450 вида'],
h: 'Грешен отговор. В Атанасовското езеро са наблюдавани над 330 вида птици'
},
{
q: 'Какво е Via Pontica?',
a: ['Миграционният път на птиците, минаващ покрай Бургаските езера', 'Рядък вид птица', 'Местност в гр. Бургас'],
h: 'Грешен отговор. Via Pontica наричаме миграционния път на птиците'
},
{
q: 'Къдроглавият пеликан...',
a: ['...има огромен жълт клюн', '...има малък розов клюн', '...не се среща в България'],
h: 'Грешен отговор. Къдроглавият пеликан има огромен жълт клюн'
},
])
maze.load().then(o=>{
gameEngine.activeObjects.add(o);
@@ -48,6 +48,7 @@ class InteractiveObject {
resolve(mesh);
break;
case 'gltf':
console.log('loadingg', obj.value)
new GLTFLoader().load(obj.value, (gltf) => {
let gltfObj = gltf.scene;
gltf.scene.traverse(function (object) {
@@ -126,7 +126,8 @@ class MazeObject {
addRoom(['floor', 'door', def.r ? 'door' : 'wall', def.f ? 'door' : 'wall', def.l ? 'door' : 'wall'], def, offsetZ)
def.objects && def.objects.forEach(async obj => {
console.log('loadingggg', def.objects)
def.objects?.forEach(async obj => {
obj.room = room;
// let go = new GameObject(obj, context);
let go = new InteractiveObject(obj, context)
@@ -30,7 +30,16 @@ class MazeQuizGame {
generate(questions, idx = 0, len){
let cq = questions[idx]
if (!cq) return {};
if (!cq) return {
len:3,
objects:[
{
type: 'gltf',
position:[0,.25,len + .52], scale: [0.037, 0.037, 0.037], rotation: [0, Math.PI/4, 0],
value: '/static/meshes/award.glb'
}
]
};
len = len || Math.round(Math.random()*tl) + 2;
// let l = {
@@ -64,7 +73,7 @@ class MazeQuizGame {
}
if (i == 0){
mo[d] = {
len: 4,
len: 3,
[dd]: this.generate(questions, idx + 1, 3)
}
}else{