diff --git a/projet-code/scenes_inf443/base/src/bat.cpp b/projet-code/scenes_inf443/base/src/bat.cpp index e6dc8bc079d5462618a458e7d6e1eda487f1ca1e..81c918409a1a75d70a6f472e8fd80696f3f95e74 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 477362662e9022e77622184e3da7b0cb0c4c24eb..e7cc36cf637df130c59b705fd7068d2866ddfb2c 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 2e313853614afa206576179afeaa6e91c2dae68b..02386f90111205421d5fded4997d2db6220bcdc8 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 4d1c51f873ffb27de3df76159cac1ad0a337e7ed..d53454a1ea76275d4af577e59e00681170f0e285 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;