summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorIan McFarlane <[email protected]>2023-02-03 13:52:15 +0000
committerGitHub <[email protected]>2023-02-03 14:52:15 +0100
commitb9e49cdca6a6b8fb65f3cc7679911c7fff41cf57 (patch)
tree34aae83c06aa987154c612c0586dfa6da91178f3 /src
parent212f331583c8847162d5950183bed9c551fbf552 (diff)
downloadraylib-b9e49cdca6a6b8fb65f3cc7679911c7fff41cf57.tar.gz
raylib-b9e49cdca6a6b8fb65f3cc7679911c7fff41cf57.zip
rcamera: move y clamp to before 3d projection (#2905)
Diffstat (limited to 'src')
-rw-r--r--src/rcamera.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/rcamera.h b/src/rcamera.h
index 1b77e19a..70221b34 100644
--- a/src/rcamera.h
+++ b/src/rcamera.h
@@ -405,6 +405,9 @@ void UpdateCamera(Camera *camera)
} break;
case CAMERA_FIRST_PERSON: // Camera moves as in a first-person game, controls are configurable
{
+ // NOTE: On CAMERA_FIRST_PERSON player Y-movement is limited to player 'eyes position'
+ camera->position.y = CAMERA.playerEyesPosition;
+
camera->position.x += (sinf(CAMERA.angle.x)*direction[MOVE_BACK] -
sinf(CAMERA.angle.x)*direction[MOVE_FRONT] -
cosf(CAMERA.angle.x)*direction[MOVE_LEFT] +
@@ -479,10 +482,6 @@ void UpdateCamera(Camera *camera)
camera->target.y = camera->position.y - matTransform.m13;
camera->target.z = camera->position.z - matTransform.m14;
- // Camera position update
- // NOTE: On CAMERA_FIRST_PERSON player Y-movement is limited to player 'eyes position'
- camera->position.y = CAMERA.playerEyesPosition;
-
// Camera swinging (y-movement), only when walking (some key pressed)
for (int i = 0; i < 6; i++) if (direction[i]) { swingCounter += GetFrameTime(); break; }
camera->position.y -= sinf(2*PI*CAMERA_FIRST_PERSON_STEP_FREQUENCY*swingCounter)*CAMERA_FIRST_PERSON_SWINGING_DELTA;