Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Erreur de segmentation pour dessiner du texte  (Lu 1519 fois)

0 Membres et 1 Invité sur ce sujet

RB29

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Erreur de segmentation pour dessiner du texte
« le: Février 19, 2015, 04:18:13 pm »
Bonjour,

Je suis actuellement en train de développer un petit jeu avec SFML, que je découvre mais je suis actuellement bloqué  :-\  Lorsque je veux dessiner du texte, j'obtiens une erreur de segmentation... D'après ce que j'ai vu lire ici et ailleurs, il s'agissait d'un problème lié à la version 1.6 mais comme j'ai la 2.1, ça ne peut pas être ça ..
J'ai aussi compris que cela pouvait être lié à la disparition du "font" dans le constructeur, je l'ai donc passé en attribut de ma classe, sans plus de succès... au lieu de vous balancer mon code, brut et pas très propre, je vous fais un petit exemple résumant mon soucis :

mon .h:

#include "SFML/Graphics.hpp"


class Interface{

public :
    std::string _name;
    std::vector<std::vector<sf::Text> > boutons;
    sf::RenderWindow *_win;
    sf::Font font;
   
    Interface(std::string n="Début",int w=700, int h=600);
    void display();
 

mon .cpp:
Interface::Interface(string n,int w,int h):_name(n),_width(w),_height(h),
_win(new sf::RenderWindow(_width,_height){
font.loadFromFile("Arial.ttf");
std::vector<sf::Text> menu0;
sf::Text menu1;
menu1.setFont(font);
menu1.setString("GO");
menu1.setPosition(sf::Vector2f(150,150));
menu1.setColor(sf::Color::Green);
menu1.setCharacterSize(12);
menu0.push_back(menu1);
boutons.push_back(menu0);
}

void Interface::display(){
      for(int i=0;i<boutons[0].size();i++){
           _win->draw(boutons[0][i]);
      }
    _win->display()
}

Pas d'erreur de compilation sinon, la fenêtre commence à se lancer avant de se refermer aussitôt,
et que le message d'erreur de segmentation s'affiche ...

Merci pour votre aide


Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur de segmentation pour dessiner du texte
« Réponse #1 le: Février 19, 2015, 04:23:41 pm »
Utilise ton debugger, c'est fait pour ça.

Et si tu ne trouves toujours pas, commence par quelque chose de plus simple, puis construit ton code fina au fur et à mesure en testant chaque étape. Forcément si tu tapes 3 km de code d'un coup et te rends compte à la fin que ça ne marche pas, tu auras beau fixer ton code pendant des heures, tu n'auras aucune idée de ce qui ne va pas ;)
Laurent Gomila - SFML developer

RB29

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Erreur de segmentation pour dessiner du texte
« Réponse #2 le: Février 19, 2015, 04:44:34 pm »
Merci pour ta réponse, très rapide en plus  8)

J'ai suivi tes conseils et j'ai essayé de faire au plus simple, en remplaçant ma liste de listes de textes
par un simple Texte, mais malheureusement, je vois pas où est le soucis, ça coince toujours  :-\
Impossible d'effectuer correctement l'instruction _win.draw(txt) sans obtenir une erreur de segmentation..
Cette erreur a l'air assez courante, quant il s'agit de la manipulation des Textes, enfin ça doit surement être moi qui fait quelque chose pas comme il faut !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Erreur de segmentation pour dessiner du texte
« Réponse #3 le: Février 19, 2015, 06:27:22 pm »
Dans ce cas fournit un code complet et minimal qui reproduit le problème, que je puisse tester ou te dire ce que tu as mal fait.
Laurent Gomila - SFML developer