Mountain  1.0.0
Simple C++ 2D Game Framework
hitbox.hpp
1 #pragma once
2 
3 #include "Mountain/collision/collider.hpp"
4 #include "Mountain/utils/rectangle.hpp"
5 
6 namespace Mountain
7 {
8  class MOUNTAIN_API Hitbox : public Collider
9  {
10  public:
11  Vector2 size;
12 
13  Hitbox();
14 
15  Hitbox(Vector2 off, Vector2 size);
16 
17  void RenderDebug(const Color& color) const override;
18 
19  [[nodiscard]]
20  constexpr Rectangle ToRectangle() const;
21 
22  [[nodiscard]]
23  bool Intersects(const Hitbox& other) const;
24 
25  [[nodiscard]]
26  bool CheckCollision(Vector2 point) const override;
27  [[nodiscard]]
28  bool CheckCollision(const Hitbox& hitbox) const override;
29  [[nodiscard]]
30  bool CheckCollision(const Circle& circle) const override;
31  [[nodiscard]]
32  bool CheckCollision(const Grid& grid) const override;
33  [[nodiscard]]
34  bool CheckCollision(const ColliderList& list) const override;
35 
36  [[nodiscard]]
37  float_t Left() const override;
38  [[nodiscard]]
39  float_t Right() const override;
40  [[nodiscard]]
41  float_t Top() const override;
42  [[nodiscard]]
43  float_t Bottom() const override;
44 
45  [[nodiscard]]
46  float AbsoluteLeft() const override;
47  [[nodiscard]]
48  float AbsoluteRight() const override;
49  [[nodiscard]]
50  float AbsoluteTop() const override;
51  [[nodiscard]]
52  float AbsoluteBottom() const override;
53 
54  [[nodiscard]]
55  float Width() const override;
56  [[nodiscard]]
57  float Height() const override;
58  [[nodiscard]]
59  Vector2 Size() const override;
60  };
61 }
62 
63 #include "Mountain/collision/hitbox.inl"
The Color struct represents a color in RGBA color space.
Definition: color.hpp:26
Contains all declarations of the Mountain Framework.
Definition: audio.hpp:22