aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-04-17 11:36:40 +0200
committerraysan5 <raysan5@gmail.com>2016-04-17 11:36:40 +0200
commit17eefed08fa052b39c9ee4c4cb486794a8551c92 (patch)
tree7bf325d93633663ff72a11ba8f919a184581fccb
parent2e5d898443767e027f0e1deab7ed3060085b62fd (diff)
downloadraylib-17eefed08fa052b39c9ee4c4cb486794a8551c92.tar.gz
raylib-17eefed08fa052b39c9ee4c4cb486794a8551c92.zip
Improved gestures system
-rw-r--r--examples/core_gestures_detection.c8
-rw-r--r--src/core.c4
-rw-r--r--src/gestures.c6
-rw-r--r--src/gestures.h4
-rw-r--r--src/raylib.h4
5 files changed, 12 insertions, 14 deletions
diff --git a/examples/core_gestures_detection.c b/examples/core_gestures_detection.c
index a5cf8e69..63a1e6bd 100644
--- a/examples/core_gestures_detection.c
+++ b/examples/core_gestures_detection.c
@@ -43,12 +43,11 @@ int main()
// Update
//----------------------------------------------------------------------------------
lastGesture = currentGesture;
+ currentGesture = GetGestureDetected();
touchPosition = GetTouchPosition(0);
-
- if (CheckCollisionPointRec(touchPosition, touchArea) && IsGestureDetected())
+
+ if (CheckCollisionPointRec(touchPosition, touchArea) && (currentGesture != GESTURE_NONE))
{
- currentGesture = GetGestureType();
-
if (currentGesture != lastGesture)
{
// Store gesture string
@@ -78,7 +77,6 @@ int main()
}
}
}
- else currentGesture = GESTURE_NONE;
//----------------------------------------------------------------------------------
// Draw
diff --git a/src/core.c b/src/core.c
index 294936fb..7b1d5960 100644
--- a/src/core.c
+++ b/src/core.c
@@ -1193,7 +1193,7 @@ bool IsMouseButtonPressed(int button)
bool pressed = false;
#if defined(PLATFORM_ANDROID)
- if (IsGestureDetected() && (GetGestureType() == GESTURE_TAP)) pressed = true;
+ if (IsGestureDetected(GESTURE_TAP)) pressed = true;
#else
if ((currentMouseState[button] != previousMouseState[button]) && (currentMouseState[button] == 1)) pressed = true;
#endif
@@ -1207,7 +1207,7 @@ bool IsMouseButtonDown(int button)
bool down = false;
#if defined(PLATFORM_ANDROID)
- if (IsGestureDetected() && (GetGestureType() == GESTURE_HOLD)) down = true;
+ if (IsGestureDetected(GESTURE_HOLD)) down = true;
#else
if (GetMouseButtonStatus(button) == 1) down = true;
#endif
diff --git a/src/gestures.c b/src/gestures.c
index b0a80084..d72aaf4e 100644
--- a/src/gestures.c
+++ b/src/gestures.c
@@ -292,14 +292,14 @@ void UpdateGestures(void)
}
// Check if a gesture have been detected
-bool IsGestureDetected(void)
+bool IsGestureDetected(int gesture)
{
- if ((enabledGestures & currentGesture) != GESTURE_NONE) return true;
+ if ((enabledGestures & currentGesture) == gesture) return true;
else return false;
}
// Check gesture type
-int GetGestureType(void)
+int GetGestureDetected(void)
{
// Get current gesture only if enabled
return (enabledGestures & currentGesture);
diff --git a/src/gestures.h b/src/gestures.h
index 5468eb54..f2bdaba4 100644
--- a/src/gestures.h
+++ b/src/gestures.h
@@ -92,8 +92,8 @@ extern "C" { // Prevents name mangling of functions
//----------------------------------------------------------------------------------
void ProcessGestureEvent(GestureEvent event); // Process gesture event and translate it into gestures
void UpdateGestures(void); // Update gestures detected (must be called every frame)
-bool IsGestureDetected(void); // Check if a gesture have been detected
-int GetGestureType(void); // Get latest detected gesture
+bool IsGestureDetected(int gesture); // Check if a gesture have been detected
+int GetGestureDetected(void); // Get latest detected gesture
void SetGesturesEnabled(unsigned int gestureFlags); // Enable a set of gestures using flags
int GetTouchPointsCount(void); // Get touch points count
diff --git a/src/raylib.h b/src/raylib.h
index 2fe29cc8..0c80b957 100644
--- a/src/raylib.h
+++ b/src/raylib.h
@@ -647,8 +647,8 @@ bool IsButtonReleased(int button); // Detect if an android
//------------------------------------------------------------------------------------
void ProcessGestureEvent(GestureEvent event); // Process gesture event and translate it into gestures
void UpdateGestures(void); // Update gestures detected (called automatically in PollInputEvents())
-bool IsGestureDetected(void); // Check if a gesture have been detected
-int GetGestureType(void); // Get latest detected gesture
+bool IsGestureDetected(int gesture); // Check if a gesture have been detected
+int GetGestureDetected(void); // Get latest detected gesture
void SetGesturesEnabled(unsigned int gestureFlags); // Enable a set of gestures using flags
int GetTouchPointsCount(void); // Get touch points count