diff options
| author | raysan5 <raysan5@gmail.com> | 2016-08-06 11:32:35 +0200 |
|---|---|---|
| committer | raysan5 <raysan5@gmail.com> | 2016-08-06 11:32:35 +0200 |
| commit | 00c7e54d3c593dbddb036f2185e614e7e4b22a1f (patch) | |
| tree | 3ef6a46031712ff9551c2711adcc9fa3045a618b /examples/core_gestures_detection.lua | |
| parent | 5f1b4e94745303ab9df87421cdd9ffb9448fee01 (diff) | |
| download | raylib-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.lua | 102 |
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 |
