Witam mam następujące dwa problemy udało mi się dzięki takiej funkcji zmienić płynnie pozycję Sprite:
sf::Vector2f Robot::moveVectore(sf::Vector2f start, sf::Vector2f end, float t){
if(start == end) return sf::Vector2f(0,0);
// policzenie wektora przesunięcia i jego długości
sf::Vector2f offset = sf::Vector2f(end.x - start.x, end.y - start.y);
float length = sqrtf(offset.x * offset.x + offset.y*offset.y);
// normalizacja wektora
offset = sf::Vector2f(offset.x / length, offset.y / length);
offset.x *= t;
offset.y *= t;
return offset;
}
Za pierwszym razem ładnie się wykonuje dzięki takiej metodzie:
sf::Vector2f offset1 = robot1.moveVectore(robot1.getTempPositionVector(), sf::Vector2f(145,300), delta*speed);
robot1.robot.move(offset1);
Sytuacja wygląda tak, sprite drga w miejscu minimalnie zmieniając swoją pozycje po przecinku oraz kiedy dodaje kolejny wektor i kolejny raz wykonuje move() nie działa to tak jakbym chciał czyli dochodzi do danego punktu i zmienia go na kolejny ale wychodzi poza ekran.
Jak mogę rozwiązać te problemy?