Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: Shinao le Juillet 03, 2012, 07:56:59 pm

Titre: [Résolu] Impossible d'utiliser SetImage dans une classe hérité
Posté par: Shinao le Juillet 03, 2012, 07:56:59 pm
Bonsoir,

voici ma classe :

class Smoke : public sf::Sprite
{
    public:
        Smoke(int x, int y, int w, int h);
        bool update();
    private:
        int smokeFocused;
        sf::Clock lastUpdate;
};

J'instancie un objet Smoke, dans mon constructeur je lui met une image SetImage(JAG::vSmoke[0]);
Cela fonctionne, l'object a bien l'image et j'arrive à l'afficher.

Or, si j'utilise SetImage() dans ma méthode update() par example, mon sprite devient blanc, pourtant je peux accéder aux autres méthodes du genre GetPosition(), j'ai essayé d'updater la même image dans d'autre méthode, avec des images différentes etc... même chose.

Je pense pas que ça vient du fait que j'accède à une image dans une classe statique car j'y accéde au départ. Alors pourquoi ça foire dans les autres méthodes ?


Merci d'avance
Titre: Re : [Sprite] Impossible d'utiliser SetImage dans une classe hérité
Posté par: Laurent le Juillet 03, 2012, 08:07:48 pm
Montre ta fonction update().
Titre: Re : [Sprite] Impossible d'utiliser SetImage dans une classe hérité
Posté par: Shinao le Juillet 03, 2012, 08:39:22 pm
J'ai réussi à résoudre le problème où je stagnais depuis une demi-journée, et c'était juste une mauvaise incrémentation de ma part, ça me donne envie de me flageller...

MAIS puisque je te tiens, j'aurais aimé savoir quelque chose :
Ma boucle qui me permet de draw() tous mes sprites et autres shapes, à certaines de mes classes j'envoie une référence de mon Application pour qu'ils puissent dessiner eux aussi les éléments qui les contiennent. Or j'aurais aimé déssiner la classe que j'appelle par elle-même.

Autrement dit en ce moment je fais ça :
p1.update(Input, App, p2, false);
p2.update(Input, App, p1, true);
App.Draw(p1);
App.Draw(p2);

Comment pourrais-je faire pour que p1 se dessine lui-même ? App.Draw(this) n'a pas l'air de fonctionné.

En tout cas, merci de ta présence ça fait plaisir.
Titre: Re : [Sprite] Impossible d'utiliser SetImage dans une classe hérité
Posté par: Laurent le Juillet 03, 2012, 08:53:24 pm
this est un pointeur vers l'objet. Donc : App.Draw(*this).
Titre: Re : [Sprite] Impossible d'utiliser SetImage dans une classe hérité
Posté par: Shinao le Juillet 03, 2012, 08:58:03 pm
Bon et bien j'ai juste l'air stupide, comme quoi.

Je te remercie, bonne soirée.