From 1a79679c21be88c14ad96b5097fecc8ea000c156 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sat, 8 Jun 2019 02:32:06 +0200 Subject: [PATCH] Added representation of occupied squares and a way to retrieve them for A* implementation Updated UML --- UML_Class_Diagram.png | Bin 43973 -> 43106 bytes src/Entity.cpp | 36 ++++++++++++++++++++++++++++++++- src/Entity.h | 8 +++++++- src/Level.cpp | 46 ++++++++++++++++++++++++++++++++++++++++-- src/Level.h | 8 ++++++++ src/Utils.h | 2 +- 6 files changed, 95 insertions(+), 5 deletions(-) diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index 5f40a3df443970fd67cc5d6fca5182c16dfb305f..7800665767a5767cbba8d07ee87c4a4e397a7631 100644 GIT binary patch literal 43106 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

`WZmnsu&%=aWqxz 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 sf::Vector2f movementVector(0,0); switch (orientation) { - case Orientation::Nort: + case Orientation::North: movementVector.y = -pro_maat::pixelsPerUnit; break; case Orientation::East: @@ -64,3 +65,36 @@ const sf::RectangleShape& Entity::getShape() const { return(shape); } + +const State Entity::getState() const +{ + return currentState; +} + +const sf::Vector2i Entity::getPosition() const +{ + // Safe : size is a multiple of pro_maat::pixelsPerUnit + uint8_t x = (shape.getPosition().x-0.5*shape.getSize().x)/pro_maat::pixelsPerUnit; + uint8_t y = (shape.getPosition().y-0.5*shape.getSize().y)/pro_maat::pixelsPerUnit; + return sf::Vector2i(x,y); +} + +const std::vector> Entity::getOccupiedSquares() const +{ + std::vector> occupiedSquares; + // Safe : size is a multiple of pro_maat::pixelsPerUnit + uint8_t w = shape.getSize().x/pro_maat::pixelsPerUnit; + uint8_t h = shape.getSize().y/pro_maat::pixelsPerUnit; + uint8_t x = shape.getPosition().x/pro_maat::pixelsPerUnit - 0.5*w; + uint8_t y = shape.getPosition().y/pro_maat::pixelsPerUnit - 0.5*h; + + for(int i = 0;i #include +#include #include "Utils.h" @@ -29,7 +30,7 @@ enum class State enum class Orientation { - Nort = 0, + North = 0, East = 90, South = 180, West = 270, @@ -47,6 +48,11 @@ public: void update(); const sf::RectangleShape& getShape() const; + const State getState() const; + const sf::Vector2i getPosition() const; + // Don't like it : iterates over every square every tick + const std::vector> getOccupiedSquares() const; + /// Position of the target of the current action on the map sf::Vector2i target; diff --git a/src/Level.cpp b/src/Level.cpp index 20fbfb3..e5c4e22 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -15,6 +15,10 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) if(!strncmp(child.name(),"Entity",6)) { entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); + + // Initialize the occupied squares vector with the new entity's squares + std::vector> entitySquares = entities.rbegin()->getOccupiedSquares(); + std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } } @@ -29,9 +33,47 @@ void Level::render(sf::RenderWindow& renderWindow) const void Level::runStep() { + std::vector> newOccupiedSquares{}; + newOccupiedSquares.reserve(occupiedSquares.size()); + for(Entity& entity: entities) { - // FIXME : For testing purposes - entity.move(); + entity.update(); + int heuristicSign = 0; + switch (entity.getState()) + { + case State::Moving: + { + heuristicSign = 1; + } + case State::Fleeing: + { + if(heuristicSign == 0) + { + heuristicSign = -1; + } + if(entity.target != entity.getPosition()) + { + entity.move(findPath(entity.getPosition(),entity.target,heuristicSign)); + } + break; + } + case State::Waiting:break; + case State::Idle:break; + } + + // Moves the occupied squares from the entity to the new occupied squares vector + std::vector> entitySquares = entity.getOccupiedSquares(); + std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(newOccupiedSquares)); } + + occupiedSquares.swap(newOccupiedSquares); + // Sort the vector as to get O(ln(n)) complexity when searching for a square + std::sort(occupiedSquares.begin(),occupiedSquares.end()); +} + +Orientation Level::findPath(sf::Vector2i start, sf::Vector2i end, int sign) +{ + // TODO : A* which returns the next move + return Orientation::East; } diff --git a/src/Level.h b/src/Level.h index 52d9f07..681a6a6 100644 --- a/src/Level.h +++ b/src/Level.h @@ -28,6 +28,14 @@ private: std::vector entities; const TextureStore& textures; + + // + // Pathfinding + // + + std::vector> occupiedSquares; + + Orientation findPath(sf::Vector2i start, sf::Vector2i end, int sign); }; diff --git a/src/Utils.h b/src/Utils.h index 4b837d3..4632cb0 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -13,7 +13,7 @@ namespace pro_maat { -static constexpr uint8_t pixelsPerUnit = 25; +static constexpr uint8_t pixelsPerUnit = 50; static constexpr char levelFolder[] = "resources/"; static constexpr char textureFolder[] = "resources/"; static constexpr char fontFolder[] = "resources/";