commit 6250e5df9dd2d10534282a430bdaccc1485f3fa0 Author: Georg Spar Date: Mon Oct 3 15:48:11 2022 +0200 init diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0c53011 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required(VERSION 3.5) + +project(GameTut VERSION 0.1 LANGUAGES CXX) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) + +set(PROJECT_SOURCES + main.cpp + MyRect.h + MyRect.cpp + bullet.h + bullet.cpp + +) + +if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) + qt_add_executable(GameTut + MANUAL_FINALIZATION + ${PROJECT_SOURCES} + ) +# Define target properties for Android with Qt 6 as: +# set_property(TARGET GameTut APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR +# ${CMAKE_CURRENT_SOURCE_DIR}/android) +# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation +else() + if(ANDROID) + add_library(GameTut SHARED + ${PROJECT_SOURCES} + ) +# Define properties for Android with Qt 5 after find_package() calls as: +# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android") + else() + add_executable(GameTut + ${PROJECT_SOURCES} + ) + endif() +endif() + +target_link_libraries(GameTut PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) + +set_target_properties(GameTut PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE TRUE + WIN32_EXECUTABLE TRUE +) + +install(TARGETS GameTut + BUNDLE DESTINATION . + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +if(QT_VERSION_MAJOR EQUAL 6) + qt_finalize_executable(GameTut) +endif() diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user new file mode 100644 index 0000000..f4ff5dd --- /dev/null +++ b/CMakeLists.txt.user @@ -0,0 +1,339 @@ + + + + + + EnvironmentId + {e6ee6a48-b810-4fb5-bc4f-5e4838e40a27} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + false + true + false + 0 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop Qt 6.4.0 GCC 64bit + Desktop Qt 6.4.0 GCC 64bit + qt.qt6.640.gcc_64_kit + 0 + 0 + 0 + + Debug + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Debug +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + 0 + /home/sparg/programming/qt/build-GameTut-Desktop_Qt_6_4_0_GCC_64bit-Debug + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + CMakeProjectManager.CMakeBuildConfiguration + + + Release + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Release +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + /home/sparg/programming/qt/build-GameTut-Desktop_Qt_6_4_0_GCC_64bit-Release + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + CMakeProjectManager.CMakeBuildConfiguration + + + RelWithDebInfo + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + /home/sparg/programming/qt/build-GameTut-Desktop_Qt_6_4_0_GCC_64bit-RelWithDebInfo + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release with Debug Information + CMakeProjectManager.CMakeBuildConfiguration + + + RelWithDebInfo + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + 0 + /home/sparg/programming/qt/build-GameTut-Desktop_Qt_6_4_0_GCC_64bit-Profile + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Profile + CMakeProjectManager.CMakeBuildConfiguration + + + MinSizeRel + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=MinSizeRel +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{IDE:ResourcePath}/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + /home/sparg/programming/qt/build-GameTut-Desktop_Qt_6_4_0_GCC_64bit-MinSizeRel + + + + all + + true + CMakeProjectManager.MakeStep + + 1 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + + clean + + true + CMakeProjectManager.MakeStep + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Minimum Size Release + CMakeProjectManager.CMakeBuildConfiguration + + 5 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + true + + 2 + + ProjectExplorer.CustomExecutableRunConfiguration + + false + true + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/MyRect.cpp b/MyRect.cpp new file mode 100644 index 0000000..f221206 --- /dev/null +++ b/MyRect.cpp @@ -0,0 +1,33 @@ +#include "MyRect.h" +#include +#include +#include "bullet.h" +#include "qgraphicsscene.h" +#include + +void MyRect::keyPressEvent(QKeyEvent *event) +{ + if (event->key() == Qt::Key_Left) { + setPos(x() -10, y()); + } + + else if( event->key() == Qt::Key_Right ) { + setPos(x() +10, y()); + } + + else if( event->key() == Qt::Key_Up ) { + setPos(x(), y() -10); + } + + else if(event->key() == Qt::Key_Down) { + setPos(x(), y() +10); + } + + else if(event->key() == Qt::Key_Space) { + Bullet* bullet = new Bullet(); + bullet->setPos(x(),y()); + scene()->addItem(bullet); + + + } +} diff --git a/MyRect.h b/MyRect.h new file mode 100644 index 0000000..c701786 --- /dev/null +++ b/MyRect.h @@ -0,0 +1,11 @@ +#ifndef MYRECT_H +#define MYRECT_H + +#include + +class MyRect: public QGraphicsRectItem { +public: + void keyPressEvent(QKeyEvent* event); +}; + +#endif // MYRECT_H diff --git a/bullet.cpp b/bullet.cpp new file mode 100644 index 0000000..5649075 --- /dev/null +++ b/bullet.cpp @@ -0,0 +1,15 @@ +#include "bullet.h" +#include + +Bullet::Bullet() +{ + setRect(0,0,10,50); + QTimer* timer = new QTimer(); + connect(timer, SIGNAL(timeout()), this, SLOT(move())); + timer->start(50); +} + +void Bullet::move() +{ + this->setPos(x(), y()-10); +} diff --git a/bullet.h b/bullet.h new file mode 100644 index 0000000..646c6e4 --- /dev/null +++ b/bullet.h @@ -0,0 +1,16 @@ +#ifndef BULLET_H +#define BULLET_H + +#include +#include + + +class Bullet : public QObject, public QGraphicsRectItem { + Q_OBJECT +public: + Bullet(); +public slots: + void move(); +}; + +#endif // BULLET_H diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..8ae58bf --- /dev/null +++ b/main.cpp @@ -0,0 +1,22 @@ +#include +#include +#include +#include "MyRect.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + MyRect* rect = new MyRect(); + rect->setRect(0,0,100,100); + rect->setFlag(QGraphicsItem::ItemIsFocusable); + rect->setFocus(); + QGraphicsScene* scene = new QGraphicsScene(); + scene->addItem(rect); + + QGraphicsView* view = new QGraphicsView(scene); + + view->show(); + + return a.exec(); +} diff --git a/tut1.cpp b/tut1.cpp new file mode 100644 index 0000000..09da997 --- /dev/null +++ b/tut1.cpp @@ -0,0 +1,15 @@ +#include "tut1.h" +#include "./ui_tut1.h" + +Tut1::Tut1(QWidget *parent) + : QWidget(parent) + , ui(new Ui::Tut1) +{ + ui->setupUi(this); +} + +Tut1::~Tut1() +{ + delete ui; +} + diff --git a/tut1.h b/tut1.h new file mode 100644 index 0000000..4504d19 --- /dev/null +++ b/tut1.h @@ -0,0 +1,21 @@ +#ifndef TUT1_H +#define TUT1_H + +#include + +QT_BEGIN_NAMESPACE +namespace Ui { class Tut1; } +QT_END_NAMESPACE + +class Tut1 : public QWidget +{ + Q_OBJECT + +public: + Tut1(QWidget *parent = nullptr); + ~Tut1(); + +private: + Ui::Tut1 *ui; +}; +#endif // TUT1_H diff --git a/tut1.ui b/tut1.ui new file mode 100644 index 0000000..590a1bc --- /dev/null +++ b/tut1.ui @@ -0,0 +1,19 @@ + + + Tut1 + + + + 0 + 0 + 800 + 600 + + + + Tut1 + + + + +