From bbc4323560baa59f001cd48f0e94fe616872764a Mon Sep 17 00:00:00 2001 From: Florian Sylvain Date: Thu, 14 Mar 2024 19:26:24 +0100 Subject: [PATCH] clean: removed player useState --- src/components/Player.tsx | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/components/Player.tsx b/src/components/Player.tsx index ccebd46..41dceef 100644 --- a/src/components/Player.tsx +++ b/src/components/Player.tsx @@ -44,7 +44,6 @@ export function Player(props: { const [pivotX, setPivotX] = useState(0); const [pivotY, setPivotY] = useState(0); - const [player, setPlayer] = useState(new Vector3(0, 0, 0)); const [mouseRef, setMouseRef] = useState(new Vector2()); const lightRef = useRef(null); @@ -66,6 +65,8 @@ export function Player(props: { useFrame((_, delta) => { const move = new Vector3(); + const player = model.scene.position; + // TODO Replace getKeys with the subscription system if (getKeys().moveForward) move.z += 1; if (getKeys().moveBackward) move.z -= 1; @@ -87,17 +88,9 @@ export function Player(props: { camera.lookAt(adujstedPos); if (Object.values(getKeys()).some((key) => key)) { - setPlayer(player.clone().add(move)); - setIsWalking(true); + player.add(move); const targetRotation = new Quaternion(); - targetRotation.setFromEuler( - new Euler( - 0, - pivotX + degToRad((Math.atan2(move.x, move.z) * 180) / Math.PI), - 0 - ) - ); const cameraRotation = new Euler().setFromQuaternion( camera.quaternion, @@ -105,12 +98,14 @@ export function Player(props: { ); targetRotation.multiplyQuaternions( targetRotation, - new Quaternion().setFromEuler(new Euler(0, -cameraRotation.y, 0)) + new Quaternion().setFromEuler( + new Euler(0, cameraRotation.y - Math.PI, 0) + ) ); model.scene.quaternion.slerp(targetRotation, 0.2); } else { - setIsWalking(false); + //a } }); @@ -153,12 +148,19 @@ export function Player(props: { return ( <> - +