diff options
| author | raysan5 <[email protected]> | 2019-12-29 13:55:15 +0100 |
|---|---|---|
| committer | raysan5 <[email protected]> | 2019-12-29 13:55:15 +0100 |
| commit | c20ccfe274f94d29dcf1a1f84048a57d56dedce6 (patch) | |
| tree | f40c6e8b68db09644fb26af4f3951756a76cd8eb /src | |
| parent | c0d1425aac300b194b0d1d359f6fe9a3d964d15d (diff) | |
| download | raylib-c20ccfe274f94d29dcf1a1f84048a57d56dedce6.tar.gz raylib-c20ccfe274f94d29dcf1a1f84048a57d56dedce6.zip | |
Review PR #1040 naming and formating
Diffstat (limited to 'src')
| -rw-r--r-- | src/camera.h | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/camera.h b/src/camera.h index ae389c93..6ce6b65f 100644 --- a/src/camera.h +++ b/src/camera.h @@ -428,16 +428,14 @@ void UpdateCamera(Camera *camera) if (cameraAngle.y > CAMERA_FIRST_PERSON_MIN_CLAMP*DEG2RAD) cameraAngle.y = CAMERA_FIRST_PERSON_MIN_CLAMP*DEG2RAD; else if (cameraAngle.y < CAMERA_FIRST_PERSON_MAX_CLAMP*DEG2RAD) cameraAngle.y = CAMERA_FIRST_PERSON_MAX_CLAMP*DEG2RAD; - // Camera is always looking at player - //camera->target.x = camera->position.x - sinf(cameraAngle.x)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; - //camera->target.y = camera->position.y + sinf(cameraAngle.y)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; - //camera->target.z = camera->position.z - cosf(cameraAngle.x)*CAMERA_FIRST_PERSON_FOCUS_DISTANCE; - Matrix t = MatrixTranslate(0,0,(cameraTargetDistance/CAMERA_FREE_PANNING_DIVIDER)); - Matrix r = MatrixRotateXYZ((Vector3){PI*2-cameraAngle.y,PI*2-cameraAngle.x,0}); - r = MatrixMultiply(t,r); - camera->target.x = camera->position.x - r.m12; - camera->target.y = camera->position.y - r.m13; - camera->target.z = camera->position.z - r.m14; + // Recalculate camera target considering translation and rotation + Matrix translation = MatrixTranslate(0, 0, (cameraTargetDistance/CAMERA_FREE_PANNING_DIVIDER)); + Matrix rotation = MatrixRotateXYZ((Vector3){ PI*2 - cameraAngle.y, PI*2 - cameraAngle.x, 0 }); + Matrix transform = MatrixMultiply(translation, rotation); + + camera->target.x = camera->position.x - transform.m12; + camera->target.y = camera->position.y - transform.m13; + camera->target.z = camera->position.z - transform.m14; if (isMoving) swingCounter++; |
