Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - BuildLight

Pages: [1]
1
Général / Re : Sprite ne s'affiche pas - C++, SFML 2.0
« le: Août 21, 2012, 03:19:09 pm »
Ok, c'est bon, le RessourceManager ne renvoyait pas les textures / fonts valide. J'ai corrigé le problème et mettant les textures et fonts publique, au lieu de passer par une fonction. A la limite, une struct aurait suffit, mais comme ma classe était déjà crée, autant l'utiliser ;) !
Merci !!!

2
Général / Re : Sprite ne s'affiche pas - C++, SFML 2.0
« le: Août 20, 2012, 10:12:39 pm »
Oui je l'ai remarqué, c'est pour sa que j'ai crée ma fonction init(), maintenant mon code ressemble à cela :

Button::Button(RessourceManager *rm)
{
   init(rm);
}

Button::Button(RessourceManager *rm, sf::String str, float x, float y)
{
   init(rm);
   label.setString(str);
   move(x, y);
}

void Button::init(RessourceManager *rm)
{
   spr.setTexture(rm->texture(RES_BUTTON));
   spr.setTextureRect(sf::IntRect(0, 0, 350, 60));

   label.setFont(rm->font(RES_FONT));
   label.setCharacterSize(40);
}

3
Général / Re : Sprite ne s'affiche pas - C++, SFML 2.0
« le: Août 20, 2012, 09:35:01 pm »
Ah oui, pardon, j'avais oublier de le préciser dans le post précédent, c'est à la ligne :

label.setString(str);

Or, je ne vois aucun pointeur Oo
Merci ;)

4
Général / Re : Sprite ne s'affiche pas - C++, SFML 2.0
« le: Août 20, 2012, 09:27:42 pm »
Après avoir fait un gestionnaire de ressources, de nouveau le même problème avec les pointeurs :
Après le retour de la fonction init() que j'ai crée entre temps qui répète les mêmes opérations que Button() un peu plus haut, le programme s'amuse à oublier les pointeurs, mais cette fois à l'intérieur de la SFML :

Exception non gérée à 0x0FBC9075 (sfml-graphics-d-2.dll) dans xxx.exe : 0xC0000005 : Violation d'accès lors de l'écriture à l'emplacement 0x00000000.

Une idée ? Merci.

5
Général / Re : Sprite ne s'affiche pas - C++, SFML 2.0
« le: Août 20, 2012, 08:41:46 pm »
Oui c'est certainement ça; je vais essayer de faire un gestionnaire d'images.
Sinon le fait d'utiliser la version 2012 ne change rien ?

6
Général / [Résolu] Sprite ne s'affiche pas - C++, SFML 2.0
« le: Août 20, 2012, 07:51:24 pm »
Bonsoir,
J'ai choisi de passer à Visual Studio pour mes projets C++, j'ai donc suivi le tuto d'installation, et commencé mon projet. L'exemple dans le tuto marche parfaitement, et d'ailleurs un code basique (tout dans main.cpp) affichant un sprite marche aussi très bien, mais si par malheur, je commence à faire des classes (un bouton dans mon cas), là, mon sprite ne s'affiche pas, mais le texte si. Voici mon code :
Button::Button()
{
   if(!tex.loadFromFile("btn.png")) {
      echo("Failed to load texture !", IT_Error);
      exit(-1);
   }

   spr.setTexture(tex);
   spr.setTextureRect(sf::IntRect(0, 0, 350, 60));

   if(!font.loadFromFile("font.png")) {
      echo("Failed to load font", IT_Error);
      exit(-1);
   }
   label.setFont(font);
   label.setCharacterSize(40);
}

Button::Button(sf::String str, float x, float y)
{
   Button();
   label.setString(str);
   move(x, y);
}

void Button::onDraw(sf::RenderWindow *w)
{
   w->draw(spr);
   w->draw(label);
}

void Button::move(float x, float y)
{
   spr.setPosition(x, y);
   label.setPosition(x + (350 - label.getLocalBounds().width) / 2, y + (60 - label.getLocalBounds().height) / 2);
}


Ou echo est un std::cout personalisé et onDraw est appelé quand le bouton doit être dessiné. J'ai essayé de remplacer la texture et le sprite par des pointeurs, mais là, sa crash à la fonction move parce-que le pointeur sur spr est oublié par magie (redevenu 0) ;D J'ai aussi essayé en Release mais rien y fait :-[ !
Que faire ?
Peut-être cela viens-t-il du fait que j'utilise Visual C++ 2012 ?
Merci d'avance pour votre aide, Nicolas.

Pages: [1]