0
0
mirror of https://github.com/Nimac0/SDL_Minigame synced 2026-01-12 22:23:43 +00:00

Hotfix only calculate for player

This commit is contained in:
Benedikt Galbavy 2024-01-28 15:10:01 +01:00
parent 8ff81ace72
commit 0c1c9a7f84
2 changed files with 33 additions and 45 deletions

View File

@ -159,24 +159,6 @@ void Game::update()
manager.refresh();
manager.update();
/*for (auto cc : Game::collisionHandler->getColliders(GroupLabel::COLLIDERS))
{
if (cc->hasCollision &&
strcmp(cc->tag, "player") &&
SDL_HasIntersection(&player1.getComponent<ColliderComponent>().collider, &cc->collider))
{
player1.getComponent<TransformComponent>().position = playerPos;
}
if (cc->hasCollision &&
strcmp(cc->tag, "enemy") &&
SDL_HasIntersection(&player2.getComponent<ColliderComponent>().collider, &cc->collider))
{
player2.getComponent<TransformComponent>().position = enemyPos;
}
}*/
//checking if projectiles hit player1 or player2
for (auto& p : projectiles) {
if(SDL_HasIntersection(&player2.getComponent<ColliderComponent>().collider, &p->getComponent<ColliderComponent>().collider)

View File

@ -56,6 +56,9 @@ void TransformComponent::update()
velocity.y * speed * multiplier
);
// TODO: move to separate functions
if (this->entity->hasGroup((size_t) GroupLabel::PLAYERS)) {
IntersectionBitSet intersectionsX = CollisionHandler::getIntersectionWithBounds(entity, positionChange);
for (auto& collider : Game::collisionHandler->getColliders(GroupLabel::MAPTILES)) {
intersectionsX |= CollisionHandler::getIntersection(entity, collider->entity, Vector2D(positionChange.x, 0), Vector2D(0, 0));
@ -72,6 +75,9 @@ void TransformComponent::update()
intersectionsY |= CollisionHandler::getIntersection(entity, collider->entity, Vector2D(0, positionChange.y), Vector2D(0, 0));
}
if (this->entity->hasGroup((size_t) GroupLabel::PLAYERS) && this->entity->getTeam() == TeamLabel::BLUE)
std::cout << intersectionsX << std::endl;
if (intersectionsX.test((size_t) direction::LEFT) && positionChange.x < 0)
positionChange.x = 0;
@ -83,7 +89,7 @@ void TransformComponent::update()
if (intersectionsY.test((size_t) direction::DOWN) && positionChange.y > 0)
positionChange.y = 0;
}
position += positionChange;
};