From 4b2ff8c1ed9921fe1cf575355e5210b7bf60f871 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9?= <noe.artru@polytechnique.org> Date: Tue, 23 May 2023 10:44:53 +0200 Subject: [PATCH] Bug fix for hitbox --- projet-code/scenes_inf443/base/src/bat.cpp | 2 +- projet-code/scenes_inf443/base/src/hitbox.cpp | 6 +++--- projet-code/scenes_inf443/base/src/hitbox.hpp | 4 ++-- projet-code/scenes_inf443/base/src/scene.cpp | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/projet-code/scenes_inf443/base/src/bat.cpp b/projet-code/scenes_inf443/base/src/bat.cpp index e6dc8bc..81c9184 100644 --- a/projet-code/scenes_inf443/base/src/bat.cpp +++ b/projet-code/scenes_inf443/base/src/bat.cpp @@ -22,7 +22,7 @@ void bat::initialize_mvt(vec3 p, numarray<vec3> key_positions, numarray<float> k timer_mvt.t = timer_mvt.t_min; //bat hitbox - bat_hitbox.initialize_hitbox(1, { {0,0,0} }, { size*6 }, pos); + bat_hitbox.initialize_hitbox(1, { {0,0,0} }, { size*6 }); } void bat::update_mvt() diff --git a/projet-code/scenes_inf443/base/src/hitbox.cpp b/projet-code/scenes_inf443/base/src/hitbox.cpp index 4773626..e7cc36c 100644 --- a/projet-code/scenes_inf443/base/src/hitbox.cpp +++ b/projet-code/scenes_inf443/base/src/hitbox.cpp @@ -1,16 +1,16 @@ #include "hitbox.hpp" -void hitbox::initialize_hitbox(int _N, std::vector<vec3> _center, std::vector<double> _r, vec3 shift) { +void hitbox::initialize_hitbox(int _N, std::vector<vec3> _center, std::vector<double> _r) { N = _N; center.resize(N); r.resize(N); for (int i = 0; i < N; i++) { - center[i] = _center[i] + shift; + center[i] = _center[i]; r[i] = _r[i]; } } -bool hitbox::is_in_hitbox(vec3 pos) { +bool hitbox::is_in_hitbox(vec3 pos, vec3 shift) { for (int i = 0; i < N; i++) { if (norm(pos - center[i]) < r[i]) return true; } diff --git a/projet-code/scenes_inf443/base/src/hitbox.hpp b/projet-code/scenes_inf443/base/src/hitbox.hpp index 2e31385..02386f9 100644 --- a/projet-code/scenes_inf443/base/src/hitbox.hpp +++ b/projet-code/scenes_inf443/base/src/hitbox.hpp @@ -10,6 +10,6 @@ struct hitbox { std::vector<vec3> center; std::vector<double> r; - void initialize_hitbox(int _N, std::vector<vec3> _center, std::vector<double> _r, vec3 shift); - bool is_in_hitbox(vec3 pos); + void initialize_hitbox(int _N, std::vector<vec3> _center, std::vector<double> _r); + bool is_in_hitbox(vec3 pos, vec3 shift); }; \ No newline at end of file diff --git a/projet-code/scenes_inf443/base/src/scene.cpp b/projet-code/scenes_inf443/base/src/scene.cpp index 4d1c51f..d53454a 100644 --- a/projet-code/scenes_inf443/base/src/scene.cpp +++ b/projet-code/scenes_inf443/base/src/scene.cpp @@ -291,7 +291,7 @@ void scene_structure::display_projectiles() { projectiles.simulate(timer.scale * 0.03f); for (int i = 0; i < projectiles.N; i++) { for (int j = 0; j < bats.N; j++) { - if (bats.bats_prop[j].bat_hitbox.is_in_hitbox(projectiles.projectiles_prop[i].pos)) bats.bats_prop[j].isdead = true; + if (bats.bats_prop[j].bat_hitbox.is_in_hitbox(projectiles.projectiles_prop[i].pos, bats.bats_prop[j].pos)) bats.bats_prop[j].isdead = true; } projectiles.mesh.model.translation = projectiles.projectiles_prop[i].pos; -- GitLab