diff --git a/projet-code/scenes_inf443/base/src/hitbox.cpp b/projet-code/scenes_inf443/base/src/hitbox.cpp new file mode 100644 index 0000000000000000000000000000000000000000..71622fec0787aa1144f1a2047f915475e68009aa --- /dev/null +++ b/projet-code/scenes_inf443/base/src/hitbox.cpp @@ -0,0 +1,28 @@ +#include "hitbox.hpp" + +bool hitbox::is_in_hitbox(vec3 pos) { + for (int i = 0; i < N; i++) { + if (norm(pos - pos[i]) < r[i]) return true; + } + return false; +} + +void hitbox::initialize_bat(double scale, vec3 posB, vec3 posWL, vec3 posWR) +{ + N = 3; + pos.resize(N); + r.resize(N); + + pos[0] = posB; + r[0] = 1 * scale; + pos[1] = posWL; + r[1] = 0.5 * scale; + pos[2] = posWR; + r[2] = 0.5 * scale; +} + +void hitbox::update_bat(vec3 posB, vec3 posWL, vec3 posWR) { + pos[0] = posB; + pos[1] = posWL; + pos[2] = posWR; +} \ No newline at end of file diff --git a/projet-code/scenes_inf443/base/src/hitbox.hpp b/projet-code/scenes_inf443/base/src/hitbox.hpp new file mode 100644 index 0000000000000000000000000000000000000000..41dc9c55bfeae756dd168f8b1324a9a45e0d90dd --- /dev/null +++ b/projet-code/scenes_inf443/base/src/hitbox.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include "cgp/cgp.hpp" + +using namespace cgp; + +struct hitbox { + int N; + + std::vector<vec3> pos; + std::vector<double> r; + + void initialize_bat(double scale, vec3 posB, vec3 posWL, vec3 posWR); + void update_bat(vec3 posB, vec3 posWL, vec3 posWR); + bool is_in_hitbox(vec3 pos); +}; \ No newline at end of file