diff options
| author | veins1 <[email protected]> | 2023-02-15 02:29:32 +0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-02-14 22:29:32 +0100 |
| commit | ec95aa2e04e5c4df49dbe25a64e9239db66d0fc2 (patch) | |
| tree | 76e5ac5238f07bfca509886181c0d6bfdeda975a /src | |
| parent | 1cfb48410013399348c56be39135dbc922ccd792 (diff) | |
| download | raylib-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
Diffstat (limited to 'src')
| -rw-r--r-- | src/rcamera.h | 16 |
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); |
