diff options
author | Aki <please@ignore.pl> | 2022-04-18 10:59:32 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-04-18 10:59:32 +0200 |
commit | f0891205710c2d5c9b78a9d275de88a77c2ccda3 (patch) | |
tree | 6e473a2a542fae6addc6f83912c3a4e91244e879 | |
parent | 04a09e6a59200092e7e4ccde94535a921c01c4c4 (diff) | |
download | bullethell2022-f0891205710c2d5c9b78a9d275de88a77c2ccda3.zip bullethell2022-f0891205710c2d5c9b78a9d275de88a77c2ccda3.tar.gz bullethell2022-f0891205710c2d5c9b78a9d275de88a77c2ccda3.tar.bz2 |
Moved collision checks to player class
-rw-r--r-- | GameScreen.cpp | 6 | ||||
-rw-r--r-- | Player-inl.h | 17 | ||||
-rw-r--r-- | Player.h | 5 |
3 files changed, 23 insertions, 5 deletions
diff --git a/GameScreen.cpp b/GameScreen.cpp index 774956e..4315060 100644 --- a/GameScreen.cpp +++ b/GameScreen.cpp @@ -16,11 +16,7 @@ GameScreen::update(const float dt) m_player.update(dt); m_generator.update(dt); m_const.update(dt); - bool collided = false; - for (const auto& bullet : m_const.m_bullets) { - if (CheckCollisionCircles(m_player.m_position, 9, bullet.position, bullet.radius)) - collided = true; - } + bool collided = m_player.collide(m_const.m_bullets); (void) collided; } diff --git a/Player-inl.h b/Player-inl.h new file mode 100644 index 0000000..10c43d1 --- /dev/null +++ b/Player-inl.h @@ -0,0 +1,17 @@ +#pragma once + +#include <vector> + +#include <raylib.h> + + +template<typename T> +bool +Player::collide(const std::vector<T>& bullets) const +{ + for (const auto& bullet : bullets) { + if (CheckCollisionCircles(m_position, 9, bullet.position, bullet.radius)) + return true; + } + return false; +} @@ -1,5 +1,7 @@ #pragma once +#include <vector> + #include <raylib.h> @@ -8,5 +10,8 @@ struct Player Player(); void update(float dt); void draw(); + template<typename T> bool collide(const std::vector<T>& bullets) const; Vector2 m_position; }; + +#include "Player-inl.h" |