integrate game1 and game2

This commit is contained in:
2025-11-05 09:43:12 +02:00
parent 4236927537
commit 4b722750c3
12 changed files with 354 additions and 278 deletions
@@ -11,7 +11,7 @@ import { VideoPlayer } from "./VideoPlayer";
import { MazeQuizGame } from "./MazeQuizGame/MazeQuizGame";
import { assignMaterial, assignParams } from "@/lib/MeshUtils";
const games = {PuzzleGame1, PuzzleGame2, PuzzleGame4};
const games = {PuzzleGame1, PuzzleGame2, PuzzleGame4, MazeQuizGame};
class InteractiveObject {
constructor(obj, gameEngine, params) {
@@ -35,7 +35,7 @@ class InteractiveObject {
this.object = this.source.object;
break;
case 'Gltf':
let gltf = await gameEngine.load(obj.value);
let gltf = await gameEngine.load(obj.value, '');
let gltfObj = gltf.scene;
gltfObj.traverse(function (object) {
object.frustumCulled = false;
@@ -58,11 +58,9 @@ class InteractiveObject {
this.source = gltf;
break;
case 'GenericObject':
this.source = await gameEngine.load(`/asset/default/${obj.$go.asset.name}`);
this.source = await gameEngine.load(obj.$go.asset.name);
this.object = this.source.scene;
break;
case 'PuzzleGame1':
case 'PuzzleGame2':
case 'PuzzleGame3':
case 'PuzzleGame4':
case 'PuzzleGame5':
@@ -72,13 +70,14 @@ class InteractiveObject {
this.object.game = game;
break;
case 'VideoPlayer':
let vp = new VideoPlayer(gameEngine, `/asset/default/${obj.$go.asset.name}`);
let vp = new VideoPlayer(gameEngine, gameEngine.assetPath + obj.$go.asset.name);
this.source = await vp.ready;
this.object = vp.object;
break;
case 'PuzzleGame1':
case 'PuzzleGame2':
case 'MazeQuizGame':
this.source = new MazeQuizGame(gameEngine, obj);
await this.source.load();
this.source = await new games[obj.type](gameEngine, obj);
this.object = this.source.object;
break;
}
@@ -91,9 +90,11 @@ class InteractiveObject {
const InteractiveObjectTypes = [
{
id: 'PuzzleGame1', name: 'Puzzle Game 1'
}, {
},{
id: 'PuzzleGame2', name: 'Puzzle Game 2'
},{
id: 'MazeQuizGame', name: 'Maze Quiz Game'
}, {
},{
id: 'VideoPlayer', name: 'Video Player'
}
];