IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

SFML Discussion :

lecture � une mauvaise adresse lors je veux afficher un vector de sf::Text


Sujet :

SFML

  1. #1
    Membre actif

    Homme Profil pro
    Site Reliability Engineer
    Inscrit en
    Janvier 2013
    Messages
    57
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Site Reliability Engineer
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Billets dans le blog
    3
    Par d�faut lecture � une mauvaise adresse lors je veux afficher un vector de sf::Text
    Bonjour tous le monde !

    Depuis hier soir j'ai un petit probl�me avec un projet "semi"-pro: �tudiant en apprentissage, j'ai recherch� pour un projet un logiciel pour afficheur (qui permet d'afficher des informations, le m�me type de logiciel dans les pizzerias et cie).
    J'ai un niveau plut�t correct en c++ et j'ai donc d�cid� de le coder avec sfml pour un test interne.

    En ce qui concerne la structure globale, j'ai un classe Slide qui repr�sente un �cran avec 2 vector pour les textes et les images (sf::Text et sf::Sprite), une autre PlayerEngine qui s'occupe de lire pour le moment un fichier json.
    Lorsque le "parser" rencontre un �l�ment "texte", j'ajoute dans le vector un sf::Text qui est retourn� par une fonction (cf code suivant).

    Le probl�me survient apr�s dans une autre boucle lorsque j'essai de le dessiner gr�ce � la m�thode draw (window.draw(element) ): une violation de lecture se passe � ce moment depuis que j'ai rajout� le setFont dans la fonction (cf #2) ... A ce que j'ai vu sur internet, le vector perd les pointeurs qui lui sont envoy� par la suite ...

    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
    21
    22
    23
    24
    switch(elements[j]["type"].GetInt()) { //Gestion du type
    case Element::Texte:
          slide.addText(getText(elements[j]["text"].GetString(), elements[j]["size"].GetInt(), pos));
          break;
       case Element::Image:
          slide.addSprite(getSprite(elements[j]["image"].GetString(), pos));
          break;
    }
    
    //...
    
    sf::Text PlayerEngine::getText(const std::string& text, int characterSize, sf::Vector2f pos) {
       sf::Text temp;
       sf::Font arial; // #2
       arial.loadFromFile("arial.ttf"); //#2
    
       temp.setFont(arial); //#2
       temp.setString(text);
       temp.setCharacterSize(characterSize);
       temp.setPosition(pos);
    
       return temp;
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    void Slide::Run(sf::RenderWindow &window) {
    
    //...
    for(sf::Text const &t : m_texts) { //On dessine les textes ...
    window.draw(t);
    }
    //...}
    Donc apr�s des recherches sur internet, et notamment concernant le choix du conteneur le plus optimis� pour ce que je semblait vouloir faire, (https://user.oc-static.com/files/313...000/313596.png) j'ai remplac� par std::list mais avec le m�me probl�me

    Merci d'avance de vos r�ponses

    EDIT: ajout de l'image avec l'erreur
    Images attach�es Images attach�es  
    N'h�sitez pas � consulter le site http://cppreference.com/ ou encore la faq c++ ici

  2. #2
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    Pourrais tu nous donner le type exact de element, parce que je soup�onne tr�s fort que tout le probl�me parte de l�...

    De plus, je ne suis vraiment pas sur que l'utilisation d'un tableau � deux dimensions soit la solution � ton probl�me, d'autant plus si ce tableau en vient � manipuler ce qui ressemble tr�s fort � des �l�ments de type std::any

    Seulement, pour pouvoir t'aider plus efficacement, il faudrait vraiment que nous ayons plus de pr�cision
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  3. #3
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    C'est ton utilisation de la font le probl�me.
    Comme le doc le stipule, elle doit exister tant que le texte qui l'utilise existe.
    https://www.sfml-dev.org/documentati...5034ea34756b81
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  4. #4
    Membre actif

    Homme Profil pro
    Site Reliability Engineer
    Inscrit en
    Janvier 2013
    Messages
    57
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Site Reliability Engineer
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Billets dans le blog
    3
    Par d�faut
    Ah mince, je ne l'avais pas vu

    l��l�ment est du type sf::Text const &t

    Pour ce qui est du pointeur vers la police, je vais la cr�er dans la fonction principale pour tester.

    Merci encore
    N'h�sitez pas � consulter le site http://cppreference.com/ ou encore la faq c++ ici

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 26/06/2018, 13h41
  2. R�ponses: 1
    Dernier message: 12/02/2015, 20h54
  3. R�ponses: 2
    Dernier message: 08/01/2010, 12h36
  4. R�ponses: 12
    Dernier message: 17/09/2006, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo