Fix camera, added more collsion stuff

added pink color
This commit is contained in:
Bram Verhulst
2024-03-19 10:20:07 +01:00
parent 6f2a6ead37
commit d5e4aa9752
13 changed files with 43 additions and 46 deletions

View File

@@ -7,15 +7,19 @@
#include "utils.h"
#include "WorldLevel.h"
Player::Player(const Point2f& Position) : m_Position(Position), m_Size(Point2f{40, 40})
{}
Player::Player(const Point2f& Position) : m_Position(Position), m_Size(Point2f{40, 40}), m_Vel(Point2f{0,0}), m_Acc(Point2f{0,0}) {
m_ContactMap[Collision::CollisionDirection::Top] = nullptr;
m_ContactMap[Collision::CollisionDirection::Bottom] = nullptr;
m_ContactMap[Collision::CollisionDirection::Left] = nullptr;
m_ContactMap[Collision::CollisionDirection::Right] = nullptr;
}
Collision::CollisionRect Player::GetCollisionRect() {
Collision::CollisionRect rect = {m_Position, m_Size, m_Vel};
return rect;
}
void Player::Draw() const {
utils::SetColor(Colors::RED);
utils::SetColor(Colors::PINK);
utils::DrawRect(Rectf{m_Position.x, m_Position.y, m_Size.x, m_Size.y});
}
@@ -61,10 +65,10 @@ void Player::Update(float elapsedTime, WorldLevel& level) {
});
for (std::pair<int, float> contact_time : contactTimes) {
int x = contact_time.first % level.WORLD_WIDTH;
int y = contact_time.first / level.WORLD_WIDTH;
WorldTile* tile2 = level.GetTileAt(Point2f{(float) x, (float) y});
Collision::CollisionRect rect = tile2->GetCollisionRect().getCollisionRect(); //TODO: fix this mess
int x = contact_time.first % WorldLevel::WORLD_WIDTH;
int y = contact_time.first / WorldLevel::WORLD_WIDTH;
WorldTile* world_tile = level.GetTileAt(Point2f{(float) x, (float) y});
Collision::CollisionRect rect = world_tile->GetCollisionRect().getCollisionRect(); //TODO: fix this mess
Collision::ResolvePlayerVsRect(*this, elapsedTime, &rect);
}