diff --git a/main.js b/main.js index 458822d..8da3c97 100644 --- a/main.js +++ b/main.js @@ -31,7 +31,7 @@ class MazeMesh extends THREE.InstancedMesh { this.map.forEach((row, z) => { row.forEach((isWall, x) => { if (isWall) { - matrix.setPosition(x + .5, 0.5, z + .5) + matrix.setPosition( x + .5 - width/2, 0.5, z + .5 - length/2) this.setMatrixAt( i, matrix ); i++ } @@ -101,6 +101,7 @@ const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.1, 1000 ); camera.rotation.order = 'YXZ'; +camera.position.set( 0, 0.7, 0); const worldOctree = new Octree(); const raftOctree = new Octree(); @@ -260,7 +261,6 @@ const groundMaterial = new THREE.MeshPhongMaterial( { } ) const ground = new THREE.Mesh( groundGeometry, groundMaterial ) ground.rotation.x = - Math.PI / 2; -ground.position.set(mazeLength/2, 0, mazeWidth/2) ground.receiveShadow = true; ground.matrixAutoUpdate = false ground.updateMatrix(); @@ -285,7 +285,7 @@ const raftMaterial = new THREE.MeshPhongMaterial( { displacementScale: -0.08 } ) const raft = new THREE.Mesh( raftGeometry, raftMaterial ) -raft.position.set( mazeLength/2 + .2, 0, -1 ) +raft.position.set( .2, 0, -1 - mazeWidth/2 ) raft.rotation.y = 1.4 raft.rotation.order = 'ZXY'; raft.castShadow = true; @@ -323,8 +323,6 @@ for ( let i=0; i { +function gameEnd() { escaped = true; - clearInterval( updateSunIntervalId ); + message.className = "escaped"; + piano.play(); + +} + +addEventListener("animationend", (event) => { + + //clearInterval( updateSunIntervalId ); //document.exitPointerLock(); }); @@ -575,8 +579,8 @@ function teleportPlayerIfOob() { if ( camera.position.y <= - 25 ) { - playerCollider.start.set( mazeLength/2, 0.3, mazeWidth/2 ); - playerCollider.end.set( mazeLength/2, 0.7, mazeWidth/2 ); + playerCollider.start.set( 0, 0.3, 0 ); + playerCollider.end.set( 0, 0.7, 0 ); playerCollider.radius = 0.3; camera.position.copy( playerCollider.end ); camera.rotation.set( 0, 0, 0 );