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)
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.