Bonjour à tous,
Après avoir cherché un peu partout sur internet je n'ai toujours pas trouvé de solution à un problème concernant la rotation de mon joueur.
Dans mon jeu, j'essaye de faire en sorte que mon joueur se tourne doucement vers ma souris.
Voici le code pour calculer l'angle de mon joueur:
void Player::SetAngle()
{
sf::Vector2i mousePos = sf::Mouse::getPosition(GD->m_window);
//Coordonées de la souris dans le monde
mousePos = (sf::Vector2i)GD->m_window.mapPixelToCoords(mousePos);
float newAngle = atan2f(mousePos.y - m_pos.y, mousePos.x - m_pos.x) * 180 / PI;
m_angle += (newAngle - m_angle) / 10.0f;
m_hitbox.setRotation(m_angle);
}
Voici un exemple visuel du type de rotation que je veut faire:
https://youtu.be/ciT_jDol9G8?t=186Mon code marche bien sauf quand mon joueur est orienté vers la gauche puisque dans la sfml l'angle vers la gauche vaut -180 ou 180 selon le côté où l'on se trouve.
Ce qui fait que quand mon joueur veut passer, par exemple, de -175 à 175 (donc une rotation de 10 degrés dans mon cas) il fait tout le tour.
J'aimerais savoir comment régler ce problème merci d'avance !