integrate game1 and game2
This commit is contained in:
@@ -18,47 +18,46 @@ const tl = 4;
|
||||
|
||||
class MazeQuizGame {
|
||||
constructor(engine, data) {
|
||||
let questions = data.shuffle ? Utils.shuffleArray(data.questions) : data.questions;
|
||||
let def = this.generate(questions);
|
||||
this.mazeObject = new MazeObject(engine, def)
|
||||
engine.addEventListener('collision', async e=>{
|
||||
let ud1 = engine.physics.world.getCollider(e.handle1)?.parent()?.userData,
|
||||
ud2 = engine.physics.world.getCollider(e.handle2)?.parent()?.userData;
|
||||
let ud = {...ud1, ...ud2}
|
||||
if (ud?.finish){
|
||||
if (e.started){
|
||||
engine.dashboard.updateProgress(1)
|
||||
engine.hero.animationsMap._idle = engine.hero.animationsMap.idle
|
||||
if ( engine.hero.animationsMap?.win){
|
||||
engine.hero.animationsMap.idle = engine.hero.animationsMap.win
|
||||
return new Promise(async (resolve, reject)=>{
|
||||
let questions = data.shuffle ? Utils.shuffleArray(data.questions) : data.questions;
|
||||
let def = this.generate(questions);
|
||||
this.mazeObject = new MazeObject(engine, def)
|
||||
engine.addEventListener('collision', async e=>{
|
||||
let ud1 = engine.physics.world.getCollider(e.handle1)?.parent()?.userData,
|
||||
ud2 = engine.physics.world.getCollider(e.handle2)?.parent()?.userData;
|
||||
let ud = {...ud1, ...ud2}
|
||||
if (ud?.finish){
|
||||
if (e.started){
|
||||
engine.dashboard.updateProgress(1)
|
||||
engine.hero.animationsMap._idle = engine.hero.animationsMap.idle
|
||||
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{
|
||||
engine.hero.animationsMap.idle = engine.hero.animationsMap._idle
|
||||
engine.hero.characterControls.cameraDelta = 0
|
||||
}
|
||||
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{
|
||||
engine.hero.animationsMap.idle = engine.hero.animationsMap._idle
|
||||
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);
|
||||
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);
|
||||
})
|
||||
await this.mazeObject.load();
|
||||
this.object = this.mazeObject.object;
|
||||
resolve(this)
|
||||
})
|
||||
}
|
||||
|
||||
async load(){
|
||||
await this.mazeObject.load();
|
||||
this.object = this.mazeObject.object;
|
||||
return this;
|
||||
}
|
||||
|
||||
generate(questions, qid = 0, len){
|
||||
let question = questions[qid]
|
||||
if (!question) return {
|
||||
|
||||
Reference in New Issue
Block a user