move on mouse button pressed

This commit is contained in:
Adrien MALINGREY 2023-06-29 18:14:20 +02:00
parent bed8224c79
commit dd2104648e
2 changed files with 13 additions and 6 deletions

View File

@ -145,8 +145,8 @@
<div id="container"></div> <div id="container"></div>
<span id="message" class="loading"> <span id="message" class="loading">
<div> <div>
Se déplacer : ZQSD ou ↑←↓→<br> Se déplacer : ↑←↓→, ZQSD ou clic<br/>
Sauter : ESPACE<br> Sauter : ESPACE<br/>
Regarder : Souris Regarder : Souris
</div> </div>
<div id="progressCircle" style="--progress: 0deg;">0%</div> <div id="progressCircle" style="--progress: 0deg;">0%</div>

15
main.js
View File

@ -73,7 +73,7 @@ container.appendChild(renderer.domElement);
const scene = new THREE.Scene(); const scene = new THREE.Scene();
scene.background = new THREE.CubeTextureLoader() scene.background = new THREE.CubeTextureLoader(loadMngr)
.setPath( 'textures/calm-sea-skybox/' ) .setPath( 'textures/calm-sea-skybox/' )
.load( [ .load( [
'ft.jpg', 'ft.jpg',
@ -103,7 +103,7 @@ const wallMaterial = new THREE.MeshStandardMaterial({
aoMap : loader.load('textures/stonewall/ao.png'), aoMap : loader.load('textures/stonewall/ao.png'),
roughnessMap: loader.load('textures/stonewall/roughness.png'), roughnessMap: loader.load('textures/stonewall/roughness.png'),
roughness : 1, roughness : 1,
envMapIntensity: 0.1 envMapIntensity: 0.4
}) })
const maze = new MazeMesh(mazeWidth, mazeWidth, 1, wallMaterial); const maze = new MazeMesh(mazeWidth, mazeWidth, 1, wallMaterial);
@ -631,18 +631,25 @@ function getSideVector() {
} }
var pressedMouseButtons = [];
document.body.onmousedown = document.body.onmouseup = function(event) {
for(var i=0; i <= Math.log2(event.buttons) || i < pressedMouseButtons.length; i++) {
pressedMouseButtons[i] = (event.buttons & (1 << i)) > 0
}
}
function controls(deltaTime) { function controls(deltaTime) {
// gives a bit of air control // gives a bit of air control
const speedDelta = deltaTime * (playerOnFloor ? 100 : 20) / STEPS_PER_FRAME; const speedDelta = deltaTime * (playerOnFloor ? 100 : 20) / STEPS_PER_FRAME;
if (keyStates["ArrowUp"] || keyStates['KeyW']) { if (keyStates["ArrowUp"] || keyStates['KeyW'] || pressedMouseButtons[0]) {
playerVelocity.add(getForwardVector().multiplyScalar(speedDelta)); playerVelocity.add(getForwardVector().multiplyScalar(speedDelta));
} }
if (keyStates["ArrowDown"] || keyStates['KeyS']) { if (keyStates["ArrowDown"] || keyStates['KeyS'] || pressedMouseButtons[1]) {
playerVelocity.add(getForwardVector().multiplyScalar(- speedDelta)); playerVelocity.add(getForwardVector().multiplyScalar(- speedDelta));