From f0891205710c2d5c9b78a9d275de88a77c2ccda3 Mon Sep 17 00:00:00 2001 From: Aki Date: Mon, 18 Apr 2022 10:59:32 +0200 Subject: Moved collision checks to player class --- GameScreen.cpp | 6 +----- Player-inl.h | 17 +++++++++++++++++ Player.h | 5 +++++ 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 Player-inl.h 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 + +#include + + +template +bool +Player::collide(const std::vector& bullets) const +{ + for (const auto& bullet : bullets) { + if (CheckCollisionCircles(m_position, 9, bullet.position, bullet.radius)) + return true; + } + return false; +} diff --git a/Player.h b/Player.h index f0d4d10..b138edd 100644 --- a/Player.h +++ b/Player.h @@ -1,5 +1,7 @@ #pragma once +#include + #include @@ -8,5 +10,8 @@ struct Player Player(); void update(float dt); void draw(); + template bool collide(const std::vector& bullets) const; Vector2 m_position; }; + +#include "Player-inl.h" -- cgit v1.1