#pragma once #include "Component.h" namespace dae { class ColliderComponent; struct CollisionRect; class RigidbodyComponent : public Component { public: RigidbodyComponent() {}; ~RigidbodyComponent(); bool DidCollide() { return m_DidCollide; } void Initialize() override; bool Move(float x, float y, const std::vector& pColliders); bool IsCollidingWith(const std::vector& pColliders, float& collisionX, float& collisionY, bool includeEdges = false); GameObject* GetLastCollidedGameObject() { return m_LastCollidedGo; } void Update(float deltaTime) override; void FixedUpdate(float deltaTime) override; void Render() const override {}; private: bool IsPointInRect(float x, float y, const CollisionRect& collisionRect, bool includeEdges = false); //bool IsRectInRect(const CollisionRect& collisionRect, const CollisionRect& otherCollisionRect); ColliderComponent* m_pColliderComponent{ nullptr }; bool m_DidCollide{ false }; GameObject* m_LastCollidedGo{ nullptr }; }; }