Bonjour à tous,

Je travaille sur un petit projet de jeu type Pong en C++ avec la bibliothèque SFML 3 (version debug).
À chaque exécution du programme depuis Visual Studio, une exception non gérée est levée à cette ligne dans mon fichier main.cpp (ligne 48) :

const FloatRect textRect = m_label.getGlobalBounds();

Et le message d’erreur est :

> Exception non gérée à 0x603B6207 (sfml-graphics-d-3.dll) dans Projet jeux pong avec la SFML.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0xFAF0F505.



La ligne incriminée se trouve dans une méthode setPosition d’une classe qui contient un sf::RectangleShape (m_rect) et un sf::Text (m_label).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
void setPosition(Vector2f position)
{
    try
    {
        m_rect.setPosition(position);
        const FloatRect textRect = m_label.getGlobalBounds();
        Vector2f scaleFactor(0.6f * m_rect.getSize().x / textRect.width, 0.6f * m_rect.getSize().y / textRect.height);
        if (scaleFactor.x < 1 || scaleFactor.y < 1)
            m_label.setScale(scaleFactor);
        m_label.setPosition({
            position.x + (position.x + m_rect.getSize().x - m_label.getGlobalBounds().width) / 2,
            position.y + (position.y + m_rect.getSize().y - m_label.getGlobalBounds().height) / 2
        });
    }
    catch(std::exception const& e)
    {
        std::cerr << "ERREUR : " << e.what() << std::endl;
    }
}
Ce que j’ai vérifié :

-m_label a bien un texte assigné (non vide)

-Une police de caractères (arial.ttf) est bien chargée avec m_label.setFont(...) (pas de message d’erreur à ce niveau)

Le programme compile correctement, mais plante systématiquement à l’exécution sur cette ligne

Même avec des vérifications if (textRect.width == 0) etc., l’erreur persiste


Informations supplémentaires :

Visual Studio 2022

Debug mode

SFML 3.0.0 (build debug et les DLL correspondantes)

Windows 10


Je suis un peu bloqué, je soupçonne une mauvaise initialisation du sf::Text ou de la police, mais je n'arrive pas à identifier la cause exacte.

Merci d'avance pour toute aide ou piste*de*débogage*!


main.cpp