a-maze-ing
This commit is contained in:
@@ -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{
|
||||
|
||||
@@ -82,7 +82,7 @@ export class CharacterControls {
|
||||
this.directionVelocity = this.directionVelocity * 2.5 * Math.abs(input[0])
|
||||
this.direction += input[0] * delta * 2.5 //this.directionVelocity;
|
||||
this.model.rotation.y = this.direction;
|
||||
this.walkDirection.set(input[0], 0, input[1])
|
||||
this.walkDirection.set(input[0]*0.33, 0, input[1])
|
||||
this.walkDirection.applyAxisAngle(this.rotateAngle, this.direction)
|
||||
this.walkDirection.normalize();
|
||||
|
||||
@@ -127,11 +127,13 @@ export class CharacterControls {
|
||||
|
||||
cameraPosition.lerp(cameraDesiredPosition, delta*2)
|
||||
this.camera.position.copy(cameraPosition)
|
||||
this.camera.lookAt(new THREE.Vector3(
|
||||
this.model.position.x,
|
||||
2,
|
||||
this.model.position.z
|
||||
))
|
||||
// this.camera.lookAt(new THREE.Vector3(
|
||||
// this.model.position.x,
|
||||
// 2,
|
||||
// this.model.position.z
|
||||
// ))
|
||||
this.orbitControl.target.set(this.model.position.x, 2, this.model.position.z)
|
||||
this.camera.lookAt(this.orbitControl.target)
|
||||
}
|
||||
|
||||
getInput(pointerControls) {
|
||||
|
||||
Reference in New Issue
Block a user