From af9012eb7d47ecfcf5eebd5025c20bcd108b7191 Mon Sep 17 00:00:00 2001 From: Paul Laffitte Date: Tue, 23 Aug 2022 20:48:39 +0200 Subject: [PATCH] build with CMake --- .gitignore | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ CMakeLists.txt | 31 ++++++++++++++++++++++++++++++ jeu.cpp | 2 -- jeu.h | 8 -------- main.cpp | 27 +++++++++++++------------- 5 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 .gitignore create mode 100644 CMakeLists.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b413dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,51 @@ +# Game files +history +highscore + +# Dependencies +lib + +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +shoot-the-aliens +shoot-the-aliens.exe + +# CMake +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c0765f4 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION 3.12 FATAL_ERROR) + +# Set project name and version +project(shoot-the-aliens VERSION 0.1.0) + +# Set C++ standard +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) + +if(MSVC) + # Link statically when building on windows to help distribution of the software + set(SFML_STATIC_LIBRARIES TRUE) + # Hide the console window in visual studio projects + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") +endif() + +# Find SFML shared libraries +find_package(SFML 2.5.1 COMPONENTS system window graphics audio REQUIRED) + +# Compile executable +add_executable(shoot-the-aliens alien.cpp explosion.cpp fond.cpp gameengine.cpp jeu.cpp joueur.cpp main.cpp soundmanager.cpp tir.cpp vaisseau.cpp) + +# Set include directory search paths +target_include_directories(shoot-the-aliens PRIVATE "${PROJECT_BINARY_DIR}") + +# Link executable to required SFML libraries +target_link_libraries(shoot-the-aliens sfml-audio sfml-graphics sfml-window sfml-system) + +# Install target +install(TARGETS shoot-the-aliens DESTINATION bin) diff --git a/jeu.cpp b/jeu.cpp index 8294bd2..4e93f68 100644 --- a/jeu.cpp +++ b/jeu.cpp @@ -24,8 +24,6 @@ bool Collision(AABB objet1, AABB objet2) return true; } -Jeu Jeu::m_Jeu; - void Jeu::Init() { m_dimensionsJeu.x = 400; diff --git a/jeu.h b/jeu.h index 1f9cfaf..c82ba9d 100644 --- a/jeu.h +++ b/jeu.h @@ -33,18 +33,10 @@ class Jeu : public GameState void EventFenetre(); - static Jeu* Instance() { - return &m_Jeu; - } - -protected: - Jeu() { } - private: sf::Event m_event; GameEngine* m_shootTheAliens; - static Jeu m_Jeu; sf::View m_vuePrincipale; sf::Vector2u m_dimensionsFenetre; sf::Vector2u m_dimensionsJeu; diff --git a/main.cpp b/main.cpp index 1c4fc8c..f9fbc92 100644 --- a/main.cpp +++ b/main.cpp @@ -8,11 +8,12 @@ int main() { srand(time(NULL)); GameEngine shootTheAliens; + Jeu jeu; shootTheAliens.Init("Shoot The Aliens", 400, 700); //shootTheAliens.getFenetre()->setMouseCursorVisible(false); shootTheAliens.getFenetre()->setFramerateLimit(60); shootTheAliens.getFenetre()->setVerticalSyncEnabled(true); - shootTheAliens.ChangeState(Jeu::Instance()); + shootTheAliens.ChangeState(&jeu); sf::Image icon; icon.loadFromFile("ressources/images/64x64.png"); shootTheAliens.getFenetre()->setIcon(64,64,icon.getPixelsPtr()); @@ -39,15 +40,15 @@ ALPHA : + Permettre le redimensionnement + Fond + Explosions -+ Fluidifier les déplacements -+ Un seul chronomètre ++ Fluidifier les d�placements ++ Un seul chronom�tre + Pause + Graphismes + Animations + Bruitages : + Explosions + Tirs - + Réacteurs : + + R�acteurs : + Avancer + Strafe + Ambiance d'espace @@ -55,21 +56,21 @@ ALPHA : + Musique + Screenshots BETA : -- Detection des mises à jour +- Detection des mises � jour - Ajouter un curseur - Multi-threading -- Réglages volume +- R�glages volume / Historique des scores -- Bruitages améliorés : - - Bruitages générés aléatoirement à partir de la fusion des bruitages de base +- Bruitages am�lior�s : + - Bruitages g�n�r�s al�atoirement � partir de la fusion des bruitages de base - Prise en compte de la distance - Prise en compte du positionnement relatif (droite/gauche) -- Accélération du fond lors de l'accélération des vaisseaux +- Acc�l�ration du fond lors de l'acc�l�ration des vaisseaux - Intro -- Modes de jeu : Chaqu'un accessibles indépendamment ou simultanéments (cases à cocher) +- Modes de jeu : Chaqu'un accessibles ind�pendamment ou simultan�ments (cases � cocher) + Normal (gratuit) - - Bouclier (payant) : Bouclier disponible pour une durée limitée, chaque kill rajoutent de l'énergie au bouclier (ou tout les x kills) - - Assassin (payant) : Cooldown de game over remis à zéro par un kill - - Infinite Runner (payant) : Reprend la partie à 80% de la progression précédente (comprend les 3 modes de jeu précédents) + - Bouclier (payant) : Bouclier disponible pour une dur�e limit�e, chaque kill rajoutent de l'�nergie au bouclier (ou tout les x kills) + - Assassin (payant) : Cooldown de game over remis � z�ro par un kill + - Infinite Runner (payant) : Reprend la partie � 80% de la progression pr�c�dente (comprend les 3 modes de jeu pr�c�dents) - Optimisations */