From 777cdf29febb82f25a70a06e60336947be2b7f16 Mon Sep 17 00:00:00 2001 From: TrueBabyChaise Date: Wed, 2 Jun 2021 16:51:11 +0200 Subject: [PATCH] add collision --- sources/Map/Map.cpp | 32 ++++++++++++++++---------------- sources/Map/Map.hpp | 1 + 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index c97dfd64..ae546adb 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -19,7 +19,7 @@ namespace BBM if (!(i % 2) && !(j % 2)) { scene->addEntity("Unbreakable Wall") .addComponent(Vector3f(i, 0, j)) - //.addComponent(1) + .addComponent(1) .addComponent>(UnbreakableObj, std::make_pair(MAP_DIFFUSE, UnbreakablePnj)); } } @@ -33,19 +33,19 @@ namespace BBM scene->addEntity("Bottom Wall") .addComponent(Vector3f((width + 1) / 2, 0, -1)) - //.addComponent(1) + .addComponent(1) .addComponent>(UnbreakableObj, std::make_pair(MAP_DIFFUSE, UnbreakablePnj), RAY::Vector3(width + 3, 1, 1)); scene->addEntity("Upper Wall") .addComponent(Vector3f((width + 1) / 2, 0, height + 1)) - //.addComponent(1) + .addComponent(1) .addComponent>(UnbreakableObj, std::make_pair(MAP_DIFFUSE, UnbreakablePnj), RAY::Vector3(width + 3, 1, 1)); scene->addEntity("Left Wall") .addComponent(Vector3f(width + 1, 0, height / 2)) - //.addComponent(1) + .addComponent(1) .addComponent>(UnbreakableObj, std::make_pair(MAP_DIFFUSE, UnbreakablePnj), RAY::Vector3(1, 1, height + 1)); scene->addEntity("Right Wall") .addComponent(Vector3f(-1, 0, height / 2)) - //.addComponent(1) + .addComponent(1) .addComponent>(UnbreakableObj, std::make_pair(MAP_DIFFUSE, UnbreakablePnj), RAY::Vector3(1, 1, height + 1)); } @@ -56,7 +56,7 @@ namespace BBM if (map[std::make_tuple(i, 0, j)] != HOLE && map[std::make_tuple(i, 0, j)] != BUMPER) scene->addEntity("Unbreakable Wall") .addComponent(Vector3f(i, -1, j)) - //.addComponent(1) + .addComponent(1) .addComponent>("assets/wall/floor.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/floor.png")); } } @@ -86,7 +86,7 @@ namespace BBM scene->addEntity("Breakable Block") .addComponent(coords) .addComponent(1) - //.addComponent(1) + .addComponent(1) .addComponent>("assets/wall/breakable_wall.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/breakable_wall.png")); } @@ -94,7 +94,7 @@ namespace BBM { scene->addEntity("Floor") .addComponent(Vector3f(coords)) - //.addComponent(1) + .addComponent(1) .addComponent>("assets/wall/floor.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/floor.png")); } @@ -102,7 +102,7 @@ namespace BBM { scene->addEntity("Unbreakable Block") .addComponent(coords) - //.addComponent(1) + .addComponent(1) .addComponent>("assets/wall/unbreakable_wall.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/unbreakable_wall.png")); } @@ -110,13 +110,13 @@ namespace BBM { scene->addEntity("Hole Block") .addComponent(Vector3f(coords.x, coords.y - 1, coords.z)) - .addComponent>("assets/wall/hole.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/hole.png")); - /* .addComponent([](const WAL::Entity &entity, WAL::Entity &other) { + .addComponent>("assets/wall/hole.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/hole.png")) + .addComponent([](const WAL::Entity &entity, WAL::Entity &other) { if (other.hasComponent()) { auto &health = other.getComponent(); health.takeDmg(health.getHealthPoint()); } - }); */ + }); } void MapGenerator::createBumper(Vector3f coords, std::shared_ptr scene) @@ -124,13 +124,13 @@ namespace BBM std::cout << "Bumper Created" << std::endl; scene->addEntity("Bumper Block") .addComponent(Vector3f(coords.x, coords.y - 1, coords.z)) - .addComponent>("assets/wall/bumper.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/bumper.png")); - /* .addComponent([](const WAL::Entity &entity, WAL::Entity &other) { + .addComponent>("assets/wall/bumper.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/bumper.png")) + .addComponent([](const WAL::Entity &entity, WAL::Entity &other) { if (other.hasComponent()) { auto &movable = other.getComponent(); movable.addForce(Vector3f(0, 5, 0)); } - } */ + }); } void MapGenerator::createStairs(Vector3f coords, std::shared_ptr scene) @@ -138,7 +138,7 @@ namespace BBM std::cout << "Stairs Created" << std::endl; scene->addEntity("Stairs Block") .addComponent(coords) - //.addComponent(1) + .addComponent(1) .addComponent>("assets/wall/stairs.obj", std::make_pair(MAP_DIFFUSE, "assets/wall/stairs.png")); } diff --git a/sources/Map/Map.hpp b/sources/Map/Map.hpp index cbbf6b67..0679c524 100644 --- a/sources/Map/Map.hpp +++ b/sources/Map/Map.hpp @@ -20,6 +20,7 @@ #include "Component/Component.hpp" #include "Component/Position/PositionComponent.hpp" #include "Component/Health/HealthComponent.hpp" +#include "Component/Collision/CollisionComponent.hpp" #include "Component/Movable/MovableComponent.hpp" namespace BBM