summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorveins1 <[email protected]>2023-02-15 02:29:32 +0500
committerGitHub <[email protected]>2023-02-14 22:29:32 +0100
commitec95aa2e04e5c4df49dbe25a64e9239db66d0fc2 (patch)
tree76e5ac5238f07bfca509886181c0d6bfdeda975a
parent1cfb48410013399348c56be39135dbc922ccd792 (diff)
downloadraylib-ec95aa2e04e5c4df49dbe25a64e9239db66d0fc2.tar.gz
raylib-ec95aa2e04e5c4df49dbe25a64e9239db66d0fc2.zip
Move camera after rotation (#2923)
Moving camera after rotation is set to avoid 1 frame delay in movement direction
-rw-r--r--src/rcamera.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/rcamera.h b/src/rcamera.h
index 7770071e..8184e625 100644
--- a/src/rcamera.h
+++ b/src/rcamera.h
@@ -418,14 +418,6 @@ void UpdateCamera(Camera *camera, int mode)
bool rotateAroundTarget = mode == CAMERA_THIRD_PERSON || mode == CAMERA_ORBITAL;
bool lockView = mode == CAMERA_FIRST_PERSON || mode == CAMERA_THIRD_PERSON || mode == CAMERA_ORBITAL;
bool rotateUp = mode == CAMERA_FREE;
-
- // Camera movement
- if (IsKeyDown(KEY_W)) CameraMoveForward(camera, CAMERA_MOVE_SPEED, moveInWorldPlane);
- if (IsKeyDown(KEY_A)) CameraMoveRight(camera, -CAMERA_MOVE_SPEED, moveInWorldPlane);
- if (IsKeyDown(KEY_S)) CameraMoveForward(camera, -CAMERA_MOVE_SPEED, moveInWorldPlane);
- if (IsKeyDown(KEY_D)) CameraMoveRight(camera, CAMERA_MOVE_SPEED, moveInWorldPlane);
- //if (IsKeyDown(KEY_SPACE)) CameraMoveUp(camera, CAMERA_MOVE_SPEED);
- //if (IsKeyDown(KEY_LEFT_CONTROL)) CameraMoveUp(camera, -CAMERA_MOVE_SPEED);
// Camera rotation
if (IsKeyDown(KEY_DOWN)) CameraPitch(camera, -CAMERA_ROTATION_SPEED, lockView, rotateAroundTarget, rotateUp);
@@ -438,6 +430,14 @@ void UpdateCamera(Camera *camera, int mode)
CameraYaw(camera, -mousePositionDelta.x*CAMERA_MOUSE_MOVE_SENSITIVITY, rotateAroundTarget);
CameraPitch(camera, -mousePositionDelta.y*CAMERA_MOUSE_MOVE_SENSITIVITY, lockView, rotateAroundTarget, rotateUp);
+ // Camera movement
+ if (IsKeyDown(KEY_W)) CameraMoveForward(camera, CAMERA_MOVE_SPEED, moveInWorldPlane);
+ if (IsKeyDown(KEY_A)) CameraMoveRight(camera, -CAMERA_MOVE_SPEED, moveInWorldPlane);
+ if (IsKeyDown(KEY_S)) CameraMoveForward(camera, -CAMERA_MOVE_SPEED, moveInWorldPlane);
+ if (IsKeyDown(KEY_D)) CameraMoveRight(camera, CAMERA_MOVE_SPEED, moveInWorldPlane);
+ //if (IsKeyDown(KEY_SPACE)) CameraMoveUp(camera, CAMERA_MOVE_SPEED);
+ //if (IsKeyDown(KEY_LEFT_CONTROL)) CameraMoveUp(camera, -CAMERA_MOVE_SPEED);
+
// Zoom target distance
CameraMoveToTarget(camera, -GetMouseWheelMove());
if (IsKeyPressed(KEY_KP_SUBTRACT)) CameraMoveToTarget(camera, 2.0f);