From 96d5dd24aa8054c0daebb495bea25a2da0a7340e Mon Sep 17 00:00:00 2001 From: Adrian Guerrero Vera Date: Mon, 21 Jun 2021 00:11:27 +0200 Subject: [PATCH] core: added `GetMouseDelta()` (#1832) * core: added `GetMouseDelta()` Thanks to previousPosition added by raysan it is now possible to create the GetMouseDelta() function. Returns a Vector2 with the difference between the current and previous position of the mouse in a frame. Useful for creating camera scrolling, among others. * Added changes noted by raysan --- src/core.c | 11 +++++++++++ src/raylib.h | 1 + 2 files changed, 12 insertions(+) diff --git a/src/core.c b/src/core.c index 887b57b1..149dad04 100644 --- a/src/core.c +++ b/src/core.c @@ -3537,6 +3537,17 @@ Vector2 GetMousePosition(void) return position; } +// Get mouse delta between frames +Vector2 GetMouseDelta(void) +{ + Vector2 delta = {0}; + + delta.x = CORE.Input.Mouse.currentPosition.x - CORE.Input.Mouse.previousPosition.x; + delta.y = CORE.Input.Mouse.currentPosition.y - CORE.Input.Mouse.previousPosition.y; + + return delta; +} + // Set mouse position XY void SetMousePosition(int x, int y) { diff --git a/src/raylib.h b/src/raylib.h index ce589bda..51565421 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1113,6 +1113,7 @@ RLAPI bool IsMouseButtonUp(int button); // Check if a mous RLAPI int GetMouseX(void); // Get mouse position X RLAPI int GetMouseY(void); // Get mouse position Y RLAPI Vector2 GetMousePosition(void); // Get mouse position XY +RLAPI Vector2 GetMouseDelta(void); // Get mouse delta between frames RLAPI void SetMousePosition(int x, int y); // Set mouse position XY RLAPI void SetMouseOffset(int offsetX, int offsetY); // Set mouse offset RLAPI void SetMouseScale(float scaleX, float scaleY); // Set mouse scaling