Salut à tous !
J'utilise la SFML avec le moteur physique Box2D, et j'essaie de rendre de façon la plus optimisée
possible les corps que Box2D gère avec des sf::Shape.
pour faire correspondre une sf::Shape à un "body" de Box2D, j'ai 2 possibilités :
Soit je fais une sf::RectangleShape, et j'update la position et l'angle à toutes les frames :
m_shape.setRotation(m_body->GetAngle()*RAD_TO_DEG); // Pour convertir les radians en degrés
m_shape.setPosition(m_body->GetPosition().x, m_body->GetPosition().y);
Ou alors je fais un polygon dont j'update chaque point :
for (int i=0; i<4; i++)
{
b2Vec2 vertex = Bodypoint[i];
m_polygon.AddPoint(vertex.x*PIXELS_PER_METER, vertex.y*PIXELS_PER_METER)
}
Ma question est de savoir quelle est la solution la plus optimisée ?
Gérer les 4 points me semble redondant, mais après je n'ai aucune idée de la "lourdeur" de la fonction
setRotation() que j'utilise dans la première solution...
Merci d'avance pour votre aide !