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

sliding collision around borders done

This commit is contained in:
ineslelin 2024-01-27 19:36:44 +01:00
parent fb88128f37
commit 314b58ac4a

View File

@ -44,12 +44,31 @@ void TransformComponent::update()
// if(velocity.x != 0 && velocity.y != 0)
float multiplier = velocity.x != 0 && velocity.y != 0 ? 0.707 : 1; //normalizes vector
Vector2D newPos(
position.x + velocity.x * speed * multiplier,
position.y + velocity.y * speed * multiplier
);
if (newPos.x < 0 || newPos.x + (this->width * this->scale) > SCREEN_SIZE_WIDTH || newPos.y < 0 || newPos.y + (this->height * this->scale) > SCREEN_SIZE_HEIGHT)
return;
if (newPos.x < 0)
{
newPos.x = 0;
}
if (newPos.x + (this->width * this->scale) > SCREEN_SIZE_WIDTH)
{
newPos.x = SCREEN_SIZE_WIDTH - (this->width * this->scale);
}
if (newPos.y < 0)
{
newPos.y = 0;
}
if (newPos.y + (this->height * this->scale) > SCREEN_SIZE_HEIGHT)
{
newPos.y = SCREEN_SIZE_HEIGHT - (this->height * this->scale);
}
position = newPos;
}