#pragma once #include "Collision.h" class WorldLevel; class Player { public: Player(const Point2f& Position); Collision::CollisionRect GetCollisionRect(); void Update(float elapsedTime, WorldLevel& level); void Draw() const; void SetPosition(Point2f pos) { m_Position = pos; } Point2f GetPosition() const { return m_Position; } void SetVelocity(Point2f vel) { m_Vel = vel; } Point2f GetVelocity() const { return m_Vel; } auto GetContactMap(){ return m_ContactMap; } void SetContactMap(Collision::CollisionDirection dir, WorldTile* tile) { m_ContactMap[dir] = tile; } void ProcessImGui(); private: Point2f m_Position; Point2f m_Size; Point2f m_Vel; std::map m_ContactMap; Point2f m_Acc; Point2f m_Gravity{ 0, -9.81f }; bool m_Grounded{ false }; bool m_DidJustDigRight{ false }; };