diff --git a/src/collision/collision_handler.cpp b/src/collision/collision_handler.cpp index 6859cab..61d7c0e 100644 --- a/src/collision/collision_handler.cpp +++ b/src/collision/collision_handler.cpp @@ -3,7 +3,7 @@ namespace collision { - void CheckCollisions(std::vector>& entities) + void CheckCollisions(std::deque>& entities) { if (entities.size() < 2) { return; } if (entities.size() == 2) diff --git a/src/collision/collision_handler.h b/src/collision/collision_handler.h index 8b6d556..8887dd8 100644 --- a/src/collision/collision_handler.h +++ b/src/collision/collision_handler.h @@ -4,6 +4,7 @@ #include #include "../entities/collision_entity.h" #include "collision.h" +#include namespace collision { @@ -13,5 +14,5 @@ namespace collision * * @param entities: A list with all the collision entities. */ - void CheckCollisions(std::vector>& entities); + void CheckCollisions(std::deque>& entities); } \ No newline at end of file diff --git a/src/entities/collision_entity.cpp b/src/entities/collision_entity.cpp index ef22775..57e7b9e 100644 --- a/src/entities/collision_entity.cpp +++ b/src/entities/collision_entity.cpp @@ -40,8 +40,8 @@ namespace entities const glm::vec3 size = bounding_box.size; - min_xyz = { bounding_box.center_pos.x - (0.5 * size.x), bounding_box.center_pos.y, bounding_box.center_pos.z - (0.5 * size.z) }; - max_xyz = { bounding_box.center_pos.x + (0.5 * size.x), bounding_box.center_pos.y + size.y, bounding_box.center_pos.z + (0.5 * size.z) }; + min_xyz = { bounding_box.center_pos.x - (0.5 * size.x), bounding_box.center_pos.y, bounding_box.center_pos.z + (0.5 * size.z) }; + max_xyz = { bounding_box.center_pos.x + (0.5 * size.x), bounding_box.center_pos.y + size.y, bounding_box.center_pos.z - (0.5 * size.z) }; // min_xyz = bounding_box.center_pos; // max_xyz = { bounding_box.center_pos.x + size.x, bounding_box.center_pos.y + size.y, bounding_box.center_pos.z + size.z }; diff --git a/src/scenes/game_Over_Scene.cpp b/src/scenes/game_Over_Scene.cpp index 8b1e50b..a04ac48 100644 --- a/src/scenes/game_Over_Scene.cpp +++ b/src/scenes/game_Over_Scene.cpp @@ -214,5 +214,4 @@ namespace scene render_engine::renderer::Render(score_textures_gameOver[digits[i]], *gui_shader_gameOver); } } - } \ No newline at end of file diff --git a/src/scenes/in_Game_Scene.cpp b/src/scenes/in_Game_Scene.cpp index ba84036..f741403 100644 --- a/src/scenes/in_Game_Scene.cpp +++ b/src/scenes/in_Game_Scene.cpp @@ -30,7 +30,7 @@ namespace scene { std::shared_ptrmain_character; - std::vector> collision_entities; + std::deque> collision_entities; //std::deque> furniture_collision; @@ -129,7 +129,7 @@ namespace scene for (int i = 0; i < furniture_count; i++) { house_models.pop_front(); - collision_entities.pop_back(); + collision_entities.erase(collision_entities.begin() + 1); } } int z_offset = model_pos * (house_generator->GetHouseDepth()); // how much "in the distance" we should load the model @@ -158,8 +158,10 @@ namespace scene models::TexturedModel model_char = { raw_model_char, texture }; collision::Box char_box = create_bounding_box(raw_model_char.model_size, glm::vec3(0, 0, 0), 1); main_character = std::make_shared(model_char, glm::vec3(0, 50, -100), glm::vec3(0, 90, 0), 5, char_box); - collision_entities.push_back(main_character); + + //collision_entities.push_back(main_character); house_generator = new entities::HouseGenerator(); + // load the first few house models for (int i = 0; i <= UPCOMING_MODEL_AMOUNT; i++) { @@ -297,8 +299,10 @@ namespace scene } // remember the position at which the new model was added last_model_pos = model_pos; + collision_entities.push_front(main_character); collision::CheckCollisions(collision_entities); + collision_entities.pop_front(); update_hand_detection(); }