C

Qt Quick Ultralite swipe_game Demo

// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
pragma singleton;
import QtQuick 2.0
Item {
    enum Direction {
        None,
        Right,
        Left,
        Up,
        Down
    }

    function isVertical(swipe : Swipe.Direction) : bool
    {
        return (swipe == Swipe.Direction.Up) || (swipe == Swipe.Direction.Down)
    }

    function isHorizontal(swipe : Swipe.Direction) : bool
    {
        return (swipe == Swipe.Direction.Right) || (swipe == Swipe.Direction.Left)
    }

    function detectDirection(mouseX : int, mouseY : int, startX : int, startY : int, threshold : int) : Swipe.Direction
    {
        if (mouseX - startX > threshold) {
            return Swipe.Direction.Right
        }

        if (mouseX - startX < -threshold) {
            return Swipe.Direction.Left
        }

        if (mouseY - startY > threshold) {
            return Swipe.Direction.Up
        }

        if (mouseY - startY < -threshold) {
            return Swipe.Direction.Down
        }

        return Swipe.Direction.None
    }
}