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