Update index.html
Browse files- index.html +31 -14
index.html
CHANGED
|
@@ -315,23 +315,40 @@
|
|
| 315 |
document.getElementById('coordZ').textContent = playerPos.z.toFixed(2);
|
| 316 |
}
|
| 317 |
|
| 318 |
-
function
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
|
| 328 |
-
|
| 329 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 330 |
}
|
| 331 |
}
|
| 332 |
});
|
| 333 |
-
|
| 334 |
-
return
|
| 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() {
|