diff options
| author | Ghost <[email protected]> | 2023-01-14 19:41:42 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2023-01-14 19:41:42 +0100 |
| commit | 2a2f2b20b8d918f9597334efad067683ae2328b0 (patch) | |
| tree | 73dbe31f70a619facf9df0b0080f1378615e7858 /examples | |
| parent | aed131a8f0746065d97f2ff35f5a90713236efc0 (diff) | |
| download | raylib-2a2f2b20b8d918f9597334efad067683ae2328b0.tar.gz raylib-2a2f2b20b8d918f9597334efad067683ae2328b0.zip | |
Fixed bug : touches become sticky (#2857)
Touches became sticky and didn't disappear after using more than 2 fingers, fixed by getting the touch count of how many fingers are on the screen, and only looping through the available/pressed down touch points instead of looping through the maximum touch points.
Tested with more than 10 touch points, and with different MAX points value, working perfectly.
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/core/core_input_multitouch.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/examples/core/core_input_multitouch.c b/examples/core/core_input_multitouch.c index 980af380..37817e5a 100644 --- a/examples/core/core_input_multitouch.c +++ b/examples/core/core_input_multitouch.c @@ -39,8 +39,12 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - // Get multiple touchpoints - for (int i = 0; i < MAX_TOUCH_POINTS; ++i) touchPositions[i] = GetTouchPosition(i); + // Get the touch point count ( how many fingers are touching the screen ) + int tCount = GetTouchPointCount(); + // Clamp touch points available ( set the maximum touch points allowed ) + if(tCount > MAX_TOUCH_POINTS) tCount = MAX_TOUCH_POINTS; + // Get touch points positions + for (int i = 0; i < tCount; ++i) touchPositions[i] = GetTouchPosition(i); //---------------------------------------------------------------------------------- // Draw @@ -49,7 +53,7 @@ int main(void) ClearBackground(RAYWHITE); - for (int i = 0; i < MAX_TOUCH_POINTS; ++i) + for (int i = 0; i < tCount; ++i) { // Make sure point is not (0, 0) as this means there is no touch for it if ((touchPositions[i].x > 0) && (touchPositions[i].y > 0)) @@ -72,4 +76,4 @@ int main(void) //-------------------------------------------------------------------------------------- return 0; -}
\ No newline at end of file +} |
