Reaperxxxx commited on
Commit
a5dfcb3
·
verified ·
1 Parent(s): 7d4e86d

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +31 -14
index.html CHANGED
@@ -315,23 +315,40 @@
315
  document.getElementById('coordZ').textContent = playerPos.z.toFixed(2);
316
  }
317
 
318
- function checkCollisions(newPos) {
319
- if (!garage) return newPos;
320
-
321
- const raycaster = new THREE.Raycaster();
322
- const sphere = new THREE.Sphere(new THREE.Vector3(newPos.x, newPos.y, newPos.z), 0.6);
323
-
324
- let hasCollision = false;
325
- garage.traverse((child) => {
326
- if (child.geometry && child.userData.isCollider) {
327
- const box = new THREE.Box3().setFromObject(child);
328
- if (box.containsPoint(sphere.center) || box.distanceToPoint(sphere.center) < sphere.radius) {
329
- hasCollision = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  }
331
  }
332
  });
333
-
334
- return hasCollision ? playerPos : newPos;
335
  }
336
 
337
  function animate() {
 
315
  document.getElementById('coordZ').textContent = playerPos.z.toFixed(2);
316
  }
317
 
318
+ function checkCameraWallCollision(camPos, playerPos) {
319
+ const wallDistance = 1.5; // How close to wall before camera pulls back
320
+ const minCamDistance = 2; // Minimum distance from player
321
+
322
+ // Define garage walls
323
+ const walls = [
324
+ { side: 'left', x: -2.2, minZ: -4, maxZ: 3.5 },
325
+ { side: 'right', x: 4, minZ: -4, maxZ: 3.5 },
326
+ { side: 'front', z: -4, minX: -2.2, maxX: 4 },
327
+ { side: 'back', z: 3.5, minX: -2.2, maxX: 4 }
328
+ ];
329
+
330
+ let newCamPos = { ...camPos };
331
+
332
+ // Check distance to each wall
333
+ walls.forEach(wall => {
334
+ if (wall.side === 'left' || wall.side === 'right') {
335
+ const wallX = wall.x;
336
+ const distToWall = Math.abs(camPos.x - wallX);
337
+ if (distToWall < wallDistance && camPos.z >= wall.minZ && camPos.z <= wall.maxZ) {
338
+ // Push camera closer to player
339
+ newCamPos.x = playerPos.x + (wall.side === 'left' ? minCamDistance : -minCamDistance);
340
+ }
341
+ } else {
342
+ const wallZ = wall.z;
343
+ const distToWall = Math.abs(camPos.z - wallZ);
344
+ if (distToWall < wallDistance && camPos.x >= wall.minX && camPos.x <= wall.maxX) {
345
+ // Push camera closer to player
346
+ newCamPos.z = playerPos.z + (wall.side === 'front' ? minCamDistance : -minCamDistance);
347
  }
348
  }
349
  });
350
+
351
+ return newCamPos;
352
  }
353
 
354
  function animate() {