Salut, je cherche un moyen de normaliser un Vector2f afin d'envoyer un bullet vers une cible. Je suis parti voir dans la documentation de SFML mais je n'ai trouvé à ce sujet. Avec XNA, je n'avais juste qu'à utiliser la fonction normalize() de la classe Vector2. Voici mon code :
this->movement = movement;
if (movement == 5) {
this->target = this->position - target;
target.normalize(); // ???
}
Merci pour votre aide.
Salut, pour te répondre les sf::vector de SFML ne sont pas des vecteur mathématiques à proprement parler.
Il est cependant possible de rajouter des fonctions soit même.
Pour normaliser un vecteur, il faut connaitre sa norme (sa longueur) et ensuite diviser ses composantes par cette norme.
sf::vetor2f vecteur(3.f,2.f);
float norme = std::sqrt(vecteur.x*vecteur.x + vecteur.y*vecteur.y);
vecteur = vecteur / norme;
Dans les grande ligne c'est ce qu'il faut faire il y a surement des précautions à prendre. Peut être que quelqu'un d'autre saura amener plus de précisions la dessus.