Added basic player / collisions in player

This commit is contained in:
Bram Verhulst
2024-03-18 15:05:11 +01:00
parent 39c744ba79
commit 964a1a42f6
8 changed files with 119 additions and 81 deletions

View File

@@ -6,6 +6,7 @@
#include "structs.h"
#include "utils.h"
class Player;
class WorldTile;
namespace Collision
@@ -20,12 +21,14 @@ namespace Collision
struct CollisionRect
{
CollisionRect() = default;
CollisionRect(const Point2f& pos, const Point2f& size) : pos(pos), size(size) {}
CollisionRect(const Point2f& pos, const Point2f& size, const Point2f& vel) : pos(pos), size(size), vel(vel) {}
Point2f pos;
Point2f size;
Point2f vel;
std::map<CollisionDirection, CollisionRect*> ContactMap;
std::map<CollisionDirection, CollisionRect*> ContactMap{};
};
struct TileCollisionRect
@@ -55,4 +58,6 @@ namespace Collision
bool DynamicRectVsRect(const CollisionRect& dynamicRectangle, float ElapsedTime, const CollisionRect& staticRectangle, Point2f& contactPoint, Point2f& contactNormal, float& contactTime);
bool ResolveDynamicRectVsRect(CollisionRect& dynamicRectangle, float ElapsedTime, CollisionRect* staticRectangle);
bool ResolvePlayerVsRect(Player& player, float ElapsedTime, Collision::CollisionRect* staticRectangle);
}