first person controls

This commit is contained in:
2025-07-26 21:33:17 +01:00
parent a11a0b8419
commit b790a7b305
8 changed files with 153845 additions and 41080 deletions

20
app.js
View File

@@ -1,4 +1,5 @@
import * as THREE from 'three'; import * as THREE from 'three';
import { FirstPersonControls } from 'three/examples/jsm/Addons.js';
const scene = new THREE.Scene(); const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
@@ -13,7 +14,26 @@ scene.add(cube);
camera.position.z = 5; camera.position.z = 5;
// Initialize first person controls
const controls = new FirstPersonControls(camera, renderer.domElement);
controls.lookSpeed = 0.1;
controls.movementSpeed = 5;
controls.lookVertical = true;
controls.constrainVertical = true;
controls.verticalMin = 1.0;
controls.verticalMax = 2.0;
controls.lon = -150;
controls.lat = 120;
// Clock for controls timing
const clock = new THREE.Clock();
function animate() { function animate() {
const delta = clock.getDelta();
// Update controls
controls.update(delta);
cube.rotation.x += 0.01; cube.rotation.x += 0.01;
cube.rotation.y += 0.01; cube.rotation.y += 0.01;
renderer.render(scene, camera); renderer.render(scene, camera);

View File

@@ -2,14 +2,24 @@
"hash": "6d498a50", "hash": "6d498a50",
"configHash": "7161c023", "configHash": "7161c023",
"lockfileHash": "6e33ff2f", "lockfileHash": "6e33ff2f",
"browserHash": "1a1e3aed", "browserHash": "0f7c2d3e",
"optimized": { "optimized": {
"three": { "three": {
"src": "../../three/build/three.module.js", "src": "../../three/build/three.module.js",
"file": "three.js", "file": "three.js",
"fileHash": "86612ddf", "fileHash": "be02eb9c",
"needsInterop": false
},
"three/examples/jsm/Addons.js": {
"src": "../../three/examples/jsm/Addons.js",
"file": "three_examples_jsm_Addons__js.js",
"fileHash": "f8fc044c",
"needsInterop": false "needsInterop": false
} }
}, },
"chunks": {} "chunks": {
"chunk-CCI6HYBR": {
"file": "chunk-CCI6HYBR.js"
}
}
} }

41513
node_modules/.vite/deps/chunk-CCI6HYBR.js generated vendored Normal file

File diff suppressed because one or more lines are too long

7
node_modules/.vite/deps/chunk-CCI6HYBR.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

41483
node_modules/.vite/deps/three.js generated vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

111871
node_modules/.vite/deps/three_examples_jsm_Addons__js.js generated vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long