aboutsummaryrefslogtreecommitdiff
path: root/examples/core_gestures_detection.lua
diff options
context:
space:
mode:
authorraysan5 <raysan5@gmail.com>2016-08-06 11:32:35 +0200
committerraysan5 <raysan5@gmail.com>2016-08-06 11:32:35 +0200
commit00c7e54d3c593dbddb036f2185e614e7e4b22a1f (patch)
tree3ef6a46031712ff9551c2711adcc9fa3045a618b /examples/core_gestures_detection.lua
parent5f1b4e94745303ab9df87421cdd9ffb9448fee01 (diff)
downloadraylib-00c7e54d3c593dbddb036f2185e614e7e4b22a1f.tar.gz
raylib-00c7e54d3c593dbddb036f2185e614e7e4b22a1f.zip
Add raylib lua examples
Diffstat (limited to 'examples/core_gestures_detection.lua')
-rw-r--r--examples/core_gestures_detection.lua102
1 files changed, 102 insertions, 0 deletions
diff --git a/examples/core_gestures_detection.lua b/examples/core_gestures_detection.lua
new file mode 100644
index 00000000..9316b990
--- /dev/null
+++ b/examples/core_gestures_detection.lua
@@ -0,0 +1,102 @@
+-------------------------------------------------------------------------------------------
+--
+-- raylib [core] example - Gestures Detection
+--
+-- This example has been created using raylib 1.6 (www.raylib.com)
+-- raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
+--
+-- Copyright (c) 2014-2016 Ramon Santamaria (@raysan5)
+--
+-------------------------------------------------------------------------------------------
+
+MAX_GESTURE_STRINGS = 20
+
+-- Initialization
+-------------------------------------------------------------------------------------------
+local screenWidth = 800
+local screenHeight = 450
+
+InitWindow(screenWidth, screenHeight, "raylib [core] example - gestures detection")
+
+local touchPosition = Vector2(0, 0)
+local touchArea = Rectangle(220, 10, screenWidth - 230, screenHeight - 20)
+
+local gesturesCount = 0
+local gestureStrings = {}
+
+for i = 1, MAX_GESTURE_STRINGS do gestureStrings[i] = "" end
+
+local currentGesture = Gestures.NONE
+local lastGesture = Gestures.NONE
+
+--SetGesturesEnabled(0b0000000000001001) -- Enable only some gestures to be detected
+
+SetTargetFPS(60)
+-------------------------------------------------------------------------------------------
+
+-- Main game loop
+while not WindowShouldClose() do -- Detect window close button or ESC key
+ -- Update
+ ---------------------------------------------------------------------------------------
+ lastGesture = currentGesture
+ currentGesture = GetGestureDetected()
+ touchPosition = GetTouchPosition(0)
+
+ if (CheckCollisionPointRec(touchPosition, touchArea) and (currentGesture ~= Gestures.NONE)) then
+ if (currentGesture ~= lastGesture) then
+ -- Store gesture string
+ if (currentGesture == Gestures.TAP) then gestureStrings[gesturesCount] = "GESTURE TAP"
+ elseif (currentGesture == Gestures.DOUBLETAP) then gestureStrings[gesturesCount] = "GESTURE DOUBLETAP"
+ elseif (currentGesture == Gestures.HOLD) then gestureStrings[gesturesCount] = "GESTURE HOLD"
+ elseif (currentGesture == Gestures.DRAG) then gestureStrings[gesturesCount] = "GESTURE DRAG"
+ elseif (currentGesture == Gestures.SWIPE_RIGHT) then gestureStrings[gesturesCount] = "GESTURE SWIPE RIGHT"
+ elseif (currentGesture == Gestures.SWIPE_LEFT) then gestureStrings[gesturesCount] = "GESTURE SWIPE LEFT"
+ elseif (currentGesture == Gestures.SWIPE_UP) then gestureStrings[gesturesCount] = "GESTURE SWIPE UP"
+ elseif (currentGesture == Gestures.SWIPE_DOWN) then gestureStrings[gesturesCount] = "GESTURE SWIPE DOWN"
+ elseif (currentGesture == Gestures.PINCH_IN) then gestureStrings[gesturesCount] = "GESTURE PINCH IN"
+ elseif (currentGesture == Gestures.PINCH_OUT) then gestureStrings[gesturesCount] = "GESTURE PINCH OUT"
+ end
+
+ gesturesCount = gesturesCount + 1
+
+ -- Reset gestures strings
+ if (gesturesCount >= MAX_GESTURE_STRINGS) then
+ for i = 1, MAX_GESTURE_STRINGS do gestureStrings[i] = "\0" end
+ gesturesCount = 0
+ end
+ end
+ end
+ ---------------------------------------------------------------------------------------
+
+ -- Draw
+ ---------------------------------------------------------------------------------------
+ BeginDrawing()
+
+ ClearBackground(RAYWHITE)
+
+ DrawRectangleRec(touchArea, GRAY)
+ DrawRectangle(225, 15, screenWidth - 240, screenHeight - 30, RAYWHITE)
+
+ DrawText("GESTURES TEST AREA", screenWidth - 270, screenHeight - 40, 20, Fade(GRAY, 0.5))
+
+ for i = 1, gesturesCount do
+ if ((i - 1)%2 == 0) then DrawRectangle(10, 30 + 20*(i - 1), 200, 20, Fade(LIGHTGRAY, 0.5))
+ else DrawRectangle(10, 30 + 20*(i - 1), 200, 20, Fade(LIGHTGRAY, 0.3)) end
+
+ if (i < gesturesCount) then DrawText(gestureStrings[i], 35, 36 + 20*(i - 1), 10, DARKGRAY)
+ else DrawText(gestureStrings[i], 35, 36 + 20*(i - 1), 10, MAROON) end
+ end
+
+ DrawRectangleLines(10, 29, 200, screenHeight - 50, GRAY)
+ DrawText("DETECTED GESTURES", 50, 15, 10, GRAY)
+
+ if (currentGesture ~= GESTURE_NONE) then DrawCircleV(touchPosition, 30, MAROON) end
+
+ EndDrawing()
+ ---------------------------------------------------------------------------------------
+end
+
+-- De-Initialization
+-------------------------------------------------------------------------------------------
+CloseWindow() -- Close window and OpenGL context
+------------------------------------------------------------------------------------------- \ No newline at end of file