From 67435debe64431759cf59fbba956e3dcb93bd47e Mon Sep 17 00:00:00 2001 From: trotFunky Date: Thu, 6 Jun 2019 21:30:39 +0200 Subject: [PATCH] Class structure, updated UML Missing : actual code, decorators --- CMakeLists.txt | 2 +- README.md | 4 ++-- UML_Class_Diagram.png | Bin 45934 -> 46872 bytes src/CMakeLists.txt | 4 ++-- src/Entity.h | 48 +++++++++++++++++++++++++++++++++++++++++- src/Game.cpp | 6 ++++++ src/Game.h | 38 +++++++++++++++++++++++++++++++++ src/Level.h | 19 ++++++++++++++--- tests/CMakeLists.txt | 2 +- 9 files changed, 113 insertions(+), 10 deletions(-) create mode 100644 src/Game.cpp create mode 100644 src/Game.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e61928..ad8b0b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) diff --git a/README.md b/README.md index 7d4ca64..576b9e4 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ This game is aimed to be a puzzle game in which the player sets different laws f ## TODO - [ ] Level - - [ ] Structure + - [x] Structure - [ ] Parsing from XML - [ ] A* - [ ] Entities - - [ ] Strucutre + - [x] Structure - [ ] Parsing from XML - [ ] Moving - [ ] Decorators (Rules) diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index c9f4d913ff2ea745bf2ee8e5fa816bf420c41632..bb6dacb4dcf41f53125e229edebc530e633e202b 100644 GIT binary patch literal 46872 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 l>(^g1ANfFYKdbZ$pPJFQQUjt{{j58wtfHr literal 45934 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 F{a=O=NzwoS diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index df9624a..671a0a5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,10 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) -add_library(engine Level.cpp Level.h Entity.cpp Entity.h) +add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h) target_link_libraries(engine sfml-window diff --git a/src/Entity.h b/src/Entity.h index d89911c..b79c1b3 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -5,9 +5,55 @@ #ifndef SRC_ENTITY_H #define SRC_ENTITY_H +#include -class Entity { +enum class EntityType +{ + Citizen, + Player, + House, + Car, +}; + +enum class State +{ + Moving, + Fleeing, + Waiting, + Idle, +}; + +enum class Orientation +{ + Nort, + East, + South, + West, +}; + + +class Entity +{ +public: + Entity(); + + void render(sf::RenderWindow& renderWindow) const; + void move(); + void update(); + + /// Position of the target of the current action on the map + sf::Vector2i target; +private: + // As it contains position, size and orientation, we do not need anything more + sf::RectangleShape shape; + + State currentState; + /// Used with rules : last to update has priority + State nextState; + + /// Used with rules : last to update has priority + sf::Vector2i nextTarget; }; diff --git a/src/Game.cpp b/src/Game.cpp new file mode 100644 index 0000000..8428f60 --- /dev/null +++ b/src/Game.cpp @@ -0,0 +1,6 @@ +// +// Created by trotfunky on 06/06/19. +// + +#include "Game.h" + diff --git a/src/Game.h b/src/Game.h new file mode 100644 index 0000000..7dbc0f6 --- /dev/null +++ b/src/Game.h @@ -0,0 +1,38 @@ +// +// Created by trotfunky on 06/06/19. +// + +#ifndef SRC_GAME_H +#define SRC_GAME_H + +#include +#include + +#include "Level.h" + + +// Used for convenience +using TextureStore = std::vector>; + +class Game { +public: + Game(const std::vector& levels, const std::vector& textures); + + /// Loads the level of corresponding ID from Game::levelFiles + void loadLevel(int levelId); + + Level currentLevel; + +private: + /// Store the paths to level files + const std::vector levelFiles; + /// Store the paths to texture files + const std::vector textureFiles; + /// Stores pointers to textures for future use + TextureStore textures; + + void loadTextures(); +}; + + +#endif //SRC_GAME_H diff --git a/src/Level.h b/src/Level.h index a3f959b..a2a03be 100644 --- a/src/Level.h +++ b/src/Level.h @@ -5,13 +5,26 @@ #ifndef SRC_LEVEL_H #define SRC_LEVEL_H +#include +#include + +#include "Entity.h" +#include "Game.h" + class Level { - Level(); +public: + Level(const TextureStore& textureStore); + + void render(sf::RenderWindow& renderWindow) const; + void runStep() const; private: - int width; - int height; + const sf::Vector2i size; + + std::vector entities; + + const TextureStore& textures; }; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0d53663..0924c9a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})