diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ecfa87f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "QuasarAppLib"] + path = QuasarAppLib + url = https://github.com/QuasarApp/QuasarAppLib.git +[submodule "CQtDeployer"] + path = CQtDeployer + url = https://github.com/QuasarApp/Console-QtDeployer.git diff --git a/CQtDeployer b/CQtDeployer new file mode 160000 index 0000000..56afcef --- /dev/null +++ b/CQtDeployer @@ -0,0 +1 @@ +Subproject commit 56afcefd5a790cc54ef8935ff52a02f86cb381d7 diff --git a/QuasarAppLib b/QuasarAppLib new file mode 160000 index 0000000..89b880f --- /dev/null +++ b/QuasarAppLib @@ -0,0 +1 @@ +Subproject commit 89b880fdd0f33361a6958da9de2acdf1c71f9a78 diff --git a/android/AndroidManifest.xml b/Snake/android/AndroidManifest.xml similarity index 100% rename from android/AndroidManifest.xml rename to Snake/android/AndroidManifest.xml diff --git a/android/build.gradle b/Snake/android/build.gradle similarity index 100% rename from android/build.gradle rename to Snake/android/build.gradle diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/Snake/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from android/gradle/wrapper/gradle-wrapper.jar rename to Snake/android/gradle/wrapper/gradle-wrapper.jar diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/Snake/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from android/gradle/wrapper/gradle-wrapper.properties rename to Snake/android/gradle/wrapper/gradle-wrapper.properties diff --git a/android/gradlew b/Snake/android/gradlew similarity index 100% rename from android/gradlew rename to Snake/android/gradlew diff --git a/android/gradlew.bat b/Snake/android/gradlew.bat similarity index 100% rename from android/gradlew.bat rename to Snake/android/gradlew.bat diff --git a/android/res/drawable-hdpi/icon.png b/Snake/android/res/drawable-hdpi/icon.png similarity index 100% rename from android/res/drawable-hdpi/icon.png rename to Snake/android/res/drawable-hdpi/icon.png diff --git a/android/res/drawable-ldpi/icon.png b/Snake/android/res/drawable-ldpi/icon.png similarity index 100% rename from android/res/drawable-ldpi/icon.png rename to Snake/android/res/drawable-ldpi/icon.png diff --git a/android/res/drawable-mdpi/icon.png b/Snake/android/res/drawable-mdpi/icon.png similarity index 100% rename from android/res/drawable-mdpi/icon.png rename to Snake/android/res/drawable-mdpi/icon.png diff --git a/android/res/values/libs.xml b/Snake/android/res/values/libs.xml similarity index 100% rename from android/res/values/libs.xml rename to Snake/android/res/values/libs.xml diff --git a/back-end/background.cpp b/Snake/back-end/background.cpp similarity index 100% rename from back-end/background.cpp rename to Snake/back-end/background.cpp diff --git a/back-end/background.h b/Snake/back-end/background.h similarity index 100% rename from back-end/background.h rename to Snake/back-end/background.h diff --git a/back-end/backgrounditem.cpp b/Snake/back-end/backgrounditem.cpp similarity index 100% rename from back-end/backgrounditem.cpp rename to Snake/back-end/backgrounditem.cpp diff --git a/back-end/backgrounditem.h b/Snake/back-end/backgrounditem.h similarity index 100% rename from back-end/backgrounditem.h rename to Snake/back-end/backgrounditem.h diff --git a/back-end/baseclass.cpp b/Snake/back-end/baseclass.cpp similarity index 100% rename from back-end/baseclass.cpp rename to Snake/back-end/baseclass.cpp diff --git a/back-end/baseclass.h b/Snake/back-end/baseclass.h similarity index 100% rename from back-end/baseclass.h rename to Snake/back-end/baseclass.h diff --git a/back-end/box.cpp b/Snake/back-end/box.cpp similarity index 100% rename from back-end/box.cpp rename to Snake/back-end/box.cpp diff --git a/back-end/box.h b/Snake/back-end/box.h similarity index 100% rename from back-end/box.h rename to Snake/back-end/box.h diff --git a/back-end/controller.cpp b/Snake/back-end/controller.cpp similarity index 100% rename from back-end/controller.cpp rename to Snake/back-end/controller.cpp diff --git a/back-end/controller.h b/Snake/back-end/controller.h similarity index 100% rename from back-end/controller.h rename to Snake/back-end/controller.h diff --git a/back-end/diff.cpp b/Snake/back-end/diff.cpp similarity index 100% rename from back-end/diff.cpp rename to Snake/back-end/diff.cpp diff --git a/back-end/diff.h b/Snake/back-end/diff.h similarity index 100% rename from back-end/diff.h rename to Snake/back-end/diff.h diff --git a/back-end/guiobject.cpp b/Snake/back-end/guiobject.cpp similarity index 100% rename from back-end/guiobject.cpp rename to Snake/back-end/guiobject.cpp diff --git a/back-end/guiobject.h b/Snake/back-end/guiobject.h similarity index 100% rename from back-end/guiobject.h rename to Snake/back-end/guiobject.h diff --git a/back-end/guiobjectfactory.cpp b/Snake/back-end/guiobjectfactory.cpp similarity index 100% rename from back-end/guiobjectfactory.cpp rename to Snake/back-end/guiobjectfactory.cpp diff --git a/back-end/guiobjectfactory.h b/Snake/back-end/guiobjectfactory.h similarity index 100% rename from back-end/guiobjectfactory.h rename to Snake/back-end/guiobjectfactory.h diff --git a/back-end/head.cpp b/Snake/back-end/head.cpp similarity index 100% rename from back-end/head.cpp rename to Snake/back-end/head.cpp diff --git a/back-end/head.h b/Snake/back-end/head.h similarity index 100% rename from back-end/head.h rename to Snake/back-end/head.h diff --git a/back-end/itemworld.cpp b/Snake/back-end/itemworld.cpp similarity index 100% rename from back-end/itemworld.cpp rename to Snake/back-end/itemworld.cpp diff --git a/back-end/itemworld.h b/Snake/back-end/itemworld.h similarity index 100% rename from back-end/itemworld.h rename to Snake/back-end/itemworld.h diff --git a/back-end/lvls.cpp b/Snake/back-end/lvls.cpp similarity index 100% rename from back-end/lvls.cpp rename to Snake/back-end/lvls.cpp diff --git a/back-end/lvls.h b/Snake/back-end/lvls.h similarity index 100% rename from back-end/lvls.h rename to Snake/back-end/lvls.h diff --git a/back-end/main.cpp b/Snake/back-end/main.cpp similarity index 100% rename from back-end/main.cpp rename to Snake/back-end/main.cpp diff --git a/back-end/snake.cpp b/Snake/back-end/snake.cpp similarity index 98% rename from back-end/snake.cpp rename to Snake/back-end/snake.cpp index e965297..58348ee 100644 --- a/back-end/snake.cpp +++ b/Snake/back-end/snake.cpp @@ -81,9 +81,10 @@ double Snake::sizeByLvl(double lvl , int count) const { double pos = (1 - (lvl / count)); QList> snakeGradientSize { - {1, 7}, - {0.9, 5}, - {0.8, 6}, + {1, 4}, + {0.99, 7}, + {0.8, 5}, + {0.6, 6}, {0.0, 3} }; diff --git a/back-end/snake.h b/Snake/back-end/snake.h similarity index 100% rename from back-end/snake.h rename to Snake/back-end/snake.h diff --git a/back-end/utils.cpp b/Snake/back-end/utils.cpp similarity index 100% rename from back-end/utils.cpp rename to Snake/back-end/utils.cpp diff --git a/back-end/utils.h b/Snake/back-end/utils.h similarity index 100% rename from back-end/utils.h rename to Snake/back-end/utils.h diff --git a/back-end/world.cpp b/Snake/back-end/world.cpp similarity index 100% rename from back-end/world.cpp rename to Snake/back-end/world.cpp diff --git a/back-end/world.h b/Snake/back-end/world.h similarity index 100% rename from back-end/world.h rename to Snake/back-end/world.h diff --git a/doc/calassdiagramm.png b/Snake/doc/calassdiagramm.png similarity index 100% rename from doc/calassdiagramm.png rename to Snake/doc/calassdiagramm.png diff --git a/doc/calassdiagramm.qmodel b/Snake/doc/calassdiagramm.qmodel similarity index 100% rename from doc/calassdiagramm.qmodel rename to Snake/doc/calassdiagramm.qmodel diff --git a/Snake/front-end/About.qml b/Snake/front-end/About.qml new file mode 100644 index 0000000..8dca402 --- /dev/null +++ b/Snake/front-end/About.qml @@ -0,0 +1,27 @@ +import QtQuick 2.9 +import QtQuick.Controls.Material 2.0 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.3 + +Page { + + title: "Page" + header: Rectangle { + height: parent.height * 0.1 + color: "#cccccc" + Label { + id: title + text: qsTr("About") + font.pointSize: 13 + wrapMode: Text.WordWrap + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + anchors.fill: parent; + anchors.margins: 5 + } + } + + contentItem: AboutPage{ + } + +} diff --git a/Snake/front-end/AboutPage.qml b/Snake/front-end/AboutPage.qml new file mode 100644 index 0000000..db3f4c8 --- /dev/null +++ b/Snake/front-end/AboutPage.qml @@ -0,0 +1,75 @@ +import QtQuick 2.9 +import QtQuick.Controls 2.3 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + +Item { + clip: true + ColumnLayout { + id: columnLayout + anchors.fill: parent + spacing: 10 + + Rectangle { + Layout.preferredHeight: parent.width / 4 + Layout.preferredWidth: parent.width / 4 + Layout.alignment: Qt.AlignHCenter | Qt.AlignTop + color: "#00000000" + Image { + id: aboutLogo + fillMode: Image.PreserveAspectFit + + source: "qrc:/logo/logo" + anchors.margins: 10 + anchors.fill: parent + + } + } + + + + Flickable { + id: flickable + clip: true + flickableDirection: Flickable.VerticalFlick + + Layout.preferredHeight: parent.height - parent.height / 2.8 + + + TextArea.flickable: TextArea { + id: textArea + textFormat: Qt.RichText + wrapMode: TextArea.Wrap + readOnly: true + persistentSelection: true + + leftPadding: 6 + rightPadding: 6 + topPadding: 0 + bottomPadding: 0 + background: null + + text: qsTr("Управление игрой происходит посредством нажатия на тачпад вашего устройства, чем чаще нажимаете, тем быстрее двигается змейка. Каждое последующее нажатие, изменяет направление змейки, в противоположную сторону. +Цель игры набрать максимальное количество очков. Количество очков зависит от пройденного расстояния. \n +Автор: Янкович Роман. Группа 10903516"); + anchors.fill: parent + font.family: "Verdana" + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignTop + + onLinkActivated: Qt.openUrlExternally(link) + } + + ScrollBar.vertical: ScrollBar { } + Layout.fillWidth: true + + } + + } + +} + +/*##^## Designer { + D{i:0;autoSize:true;height:480;width:640} +} + ##^##*/ diff --git a/Snake/front-end/BasePopUp.qml b/Snake/front-end/BasePopUp.qml new file mode 100644 index 0000000..9b83497 --- /dev/null +++ b/Snake/front-end/BasePopUp.qml @@ -0,0 +1,66 @@ +import QtQuick 2.11 +import QtQuick.Controls 2.3 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + +Popup { + id : basePopup + width: 200 + height: 100 + x: 0 + y: 0 + + transformOrigin: Item.Center + + property bool autoClose: true + property int closeInterval: 15000; + property int margin : 0 + + NumberAnimation { + id: animation; + target: basePopup + property: "opacity" + easing.period: 0.33 + easing.amplitude: 1 + duration: 2000 + easing.type: Easing.OutElastic + + onStopped: { + if (to < 1) + close(); + } + } + + function _show() { + animation.from = 0; + animation.to = 1; + animation.start(); + + if (autoClose) { + timerAnimation.start(); + } + + open(); + } + + Timer { + id: timerAnimation; + running: false; + repeat: false; + + onTriggered: { + animation.from = 1; + animation.to = 0; + animation.start(); + } + } + + onClosed: { + if (autoClose) + opacity = 0; + } + + closePolicy: (autoClose)? Popup.NoAutoClose: Popup.CloseOnReleaseOutside + + +} diff --git a/front-end/GraphicItem.qml b/Snake/front-end/GraphicItem.qml similarity index 100% rename from front-end/GraphicItem.qml rename to Snake/front-end/GraphicItem.qml diff --git a/front-end/MainMenu.qml b/Snake/front-end/MainMenu.qml similarity index 75% rename from front-end/MainMenu.qml rename to Snake/front-end/MainMenu.qml index b8a499d..7726fbb 100644 --- a/front-end/MainMenu.qml +++ b/Snake/front-end/MainMenu.qml @@ -40,12 +40,16 @@ Item { Button { id: level - text: qsTr("Select level") + text: qsTr("My Status") Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter font.pixelSize: 20 Layout.preferredHeight: item1.height / 5 Layout.preferredWidth: item1.height * 0.8 spacing: 2 + + onClicked: { +// rec._show(); + } } Button { @@ -73,8 +77,33 @@ Item { anchors.rightMargin: 23 anchors.top: parent.top anchors.topMargin: 20 + + onClicked: { + about._show(); + } } + + PagePopUp { + id: about; + width: parent.width / 2 + height: parent.height / 2; + x: parent.width / 2 - width / 2 + y: parent.height / 2 - height / 2 + + source: "About.qml" + } + +// PagePopUp { +// id: rec; +// width: parent.width / 2 +// height: parent.height / 2; +// x: parent.width / 2 - width / 2 +// y: parent.height / 2 - height / 2 + +// source: "RecordsPage.qml" +// } + } /*##^## Designer { diff --git a/front-end/NotificationForm.qml b/Snake/front-end/NotificationForm.qml similarity index 70% rename from front-end/NotificationForm.qml rename to Snake/front-end/NotificationForm.qml index c56d429..9bb9059 100644 --- a/front-end/NotificationForm.qml +++ b/Snake/front-end/NotificationForm.qml @@ -3,38 +3,10 @@ import QtQuick.Controls 2.3 import QtQuick.Controls.Material 2.0 import QtQuick.Layouts 1.3 -Popup { +BasePopUp { id : popup - width: 200 - height: 100 - x: 0 - y: 0 - transformOrigin: Item.Center - - property bool autoClose: true - property int closeInterval: 15000; - property int margin : 0 - - NumberAnimation { - id: animation; - target: popup - property: "opacity" - easing.period: 0.33 - easing.amplitude: 1 - duration: 2000 - easing.type: Easing.OutElastic - - onStopped: { - if (to < 1) - close(); - } - } function show(title_, message_, img_) { - animation.from = 0; - animation.to = 1; - animation.start(); - title.text = title_; message.text = message_; if (img_) { @@ -43,27 +15,7 @@ Popup { image.source = ""; } - if (autoClose) { - timerAnimation.start(); - } - - open(); - } - - Timer { - id: timerAnimation; - running: false; - repeat: false; - - onTriggered: { - animation.from = 1; - animation.to = 0; - animation.start(); - } - } - - onClosed: { - opacity = 0; + _show(); } Page { @@ -71,6 +23,7 @@ Popup { title: "Level Up!!!" anchors.fill: parent + Label { id: title x: 0 @@ -132,7 +85,6 @@ Popup { } } } - closePolicy: Popup.NoAutoClose } diff --git a/Snake/front-end/PagePopUp.qml b/Snake/front-end/PagePopUp.qml new file mode 100644 index 0000000..d1a256c --- /dev/null +++ b/Snake/front-end/PagePopUp.qml @@ -0,0 +1,23 @@ +import QtQuick 2.11 +import QtQuick.Controls 2.3 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + +BasePopUp { + id: pagePopUp + property string source: "" + autoClose: false + + Loader { + id: sour + anchors.fill: parent + source: (pagePopUp.source)? pagePopUp.source: "Item.qml"; + + Connections { + target: sour.item + onClose: { + pagePopUp.close(); + } + } + } +} diff --git a/front-end/Scene.qml b/Snake/front-end/Scene.qml similarity index 100% rename from front-end/Scene.qml rename to Snake/front-end/Scene.qml diff --git a/front-end/SelectLevelScene.qml b/Snake/front-end/SelectLevelScene.qml similarity index 100% rename from front-end/SelectLevelScene.qml rename to Snake/front-end/SelectLevelScene.qml diff --git a/front-end/SnakeItem.qml b/Snake/front-end/SnakeItem.qml similarity index 100% rename from front-end/SnakeItem.qml rename to Snake/front-end/SnakeItem.qml diff --git a/Snake/front-end/TextInput.qml b/Snake/front-end/TextInput.qml new file mode 100644 index 0000000..17ac7c5 --- /dev/null +++ b/Snake/front-end/TextInput.qml @@ -0,0 +1,47 @@ +import QtQuick 2.11 +import QtQuick.Controls 2.3 +import QtQuick.Controls.Material 2.0 +import QtQuick.Layouts 1.3 + + +Item { + + signal close(); + + RowLayout { + anchors.fill: parent + Layout.fillWidth: true + Layout.alignment: Qt.AlignHCenter | Qt.AlignBottom + + Label { + text: qsTr("Write you name "); + + } + + TextField { + + id: input; + + Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter + + } + + Button { + + id: ok + text: qsTr("Ok") + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter + + onClicked: { + if (contr) { + var rec = contr.getRecords() + rec.append(input.text, contr.generalLong); + } + + close(); + + } + } + } +} diff --git a/front-end/main.qml b/Snake/front-end/main.qml similarity index 100% rename from front-end/main.qml rename to Snake/front-end/main.qml diff --git a/img/Settings-icon.png b/Snake/img/Settings-icon.png similarity index 100% rename from img/Settings-icon.png rename to Snake/img/Settings-icon.png diff --git a/img/asphalt.jpg b/Snake/img/asphalt.jpg similarity index 100% rename from img/asphalt.jpg rename to Snake/img/asphalt.jpg diff --git a/img/box-texture.png b/Snake/img/box-texture.png similarity index 100% rename from img/box-texture.png rename to Snake/img/box-texture.png diff --git a/img/cogs-solid.svg b/Snake/img/cogs-solid.svg similarity index 100% rename from img/cogs-solid.svg rename to Snake/img/cogs-solid.svg diff --git a/img/icon.ico b/Snake/img/icon.ico similarity index 100% rename from img/icon.ico rename to Snake/img/icon.ico diff --git a/img/logo.png b/Snake/img/logo.png similarity index 100% rename from img/logo.png rename to Snake/img/logo.png diff --git a/img/up.svg b/Snake/img/up.svg similarity index 100% rename from img/up.svg rename to Snake/img/up.svg diff --git a/qml.qrc b/Snake/qml.qrc similarity index 73% rename from qml.qrc rename to Snake/qml.qrc index ec34664..9a1b2af 100644 --- a/qml.qrc +++ b/Snake/qml.qrc @@ -5,9 +5,13 @@ front-end/MainMenu.qml qtquickcontrols2.conf front-end/Scene.qml - front-end/Image.qml front-end/NotificationForm.qml front-end/SnakeItem.qml + front-end/About.qml + front-end/AboutPage.qml + front-end/BasePopUp.qml + front-end/TextInput.qml + front-end/PagePopUp.qml img/up.svg diff --git a/qtquickcontrols2.conf b/Snake/qtquickcontrols2.conf similarity index 100% rename from qtquickcontrols2.conf rename to Snake/qtquickcontrols2.conf diff --git a/snake.pro b/Snake/snake.pro similarity index 92% rename from snake.pro rename to Snake/snake.pro index de75797..b90b37c 100644 --- a/snake.pro +++ b/Snake/snake.pro @@ -1,5 +1,5 @@ QT += quick -CONFIG += c++11 +CONFIG += c++17 # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked deprecated (the exact warnings @@ -31,6 +31,14 @@ SOURCES += \ RESOURCES += qml.qrc + +CONFIG(release, debug|release): { + DESTDIR = $$PWD/build/release + +} else { + DESTDIR = $$PWD/build/debug +} + # Additional import path used to resolve QML modules in Qt Creator's code model QML_IMPORT_PATH = @@ -66,7 +74,8 @@ DISTFILES += \ android/res/values/libs.xml \ android/build.gradle \ android/gradle/wrapper/gradle-wrapper.properties \ - android/gradlew.bat + android/gradlew.bat \ + front-end/PagePopUp.qml ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android diff --git a/SnakeMain.pro b/SnakeMain.pro new file mode 100644 index 0000000..488a6b6 --- /dev/null +++ b/SnakeMain.pro @@ -0,0 +1,13 @@ + +TEMPLATE = subdirs +CONFIG += ordered + +SUBDIRS += \ + QuasarAppLib \ + CQtDeployer \ + Snake + +QuasarAppLib.file = QuasarAppLib/QuasarApp.pro +Snake.file = Snake/snake.pro +Snake.depends = QuasarAppLib CQtDeployer + diff --git a/front-end/Image.qml b/front-end/Image.qml deleted file mode 100644 index ea1849d..0000000 --- a/front-end/Image.qml +++ /dev/null @@ -1,8 +0,0 @@ -import QtQuick 2.9 -import QtQuick.Controls.Material 2.0 -import QtQuick.Controls 2.3 -import QtQuick.Layouts 1.3 - -Image { - id: image -}