Обход препятсвия с++
void monsterMove(float playerX, float playerY)
{
speed = 0.05f;
// Вычисляем вектор до игрока
float dxToPlayer = playerX - x;
float dyToPlayer = playerY - y;
sf::Vector2f newPosition(x, y);
if (!checkCollision(newPosition, 64, tilePositions, tilePositionsExceptions))
{
if (abs(dxToPlayer) < abs(dyToPlayer))
{
dx = 0;
if (dyToPlayer > 0)
dy = speed;
else
dy = -speed;
}
else
{
dy = 0;
if (dxToPlayer > 0)
dx = speed;
else
dx = -speed;
}
}
else
{
cout << "collisions" << endl;
// обход препятсвия
}
}
у меня есть движения монстра , и он должен ходить за игроком,ну монстр должен обходить препятсвия, есть функция какая проверяет столкнования.Как сделать обход препятсвия?