Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: natou2000 le Juillet 16, 2018, 10:12:58 pm

Titre: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
Posté par: natou2000 le Juillet 16, 2018, 10:12:58 pm
j'ai crée des Objets possédant plusieur Sprite cependant pour dessiner les deux objets il faut taper 2 fois

window.draw(background.m_sprite1);
window.draw(background.m_sprite2);

et clairement ce n'est pas pratique, Ainsi j'ai crée une fonction Drawable(); dans mon Objets pour faire directement background.Drawable(); et l'ensemble des Sprite de Background ce dessine ... Cependant je ne sais vraiment pas comment faire

j'ai retourné le "window" de renderWindow pour faire un window.draw() dans l'objets mais la classe "NONCOPYABLE" met retourné j'ai remarqué que sf::Sprite possédaient la fonction "draw()" mais je ne sais pas comment utilisé m_sprite.draw();



Si quelqu’un sait comment faire pour qu'un objets se dessine seul qu'il m'aide  ???  je suis un peu perdu haha en tout cas merci d'avance pour les âmes charitable répondant à mon topic voilà merci :D
Titre: Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
Posté par: Laurent le Juillet 16, 2018, 10:19:33 pm
Première chose : ton post est très confus. Si tu veux une aide efficace, reste sur des choses concrètes (morceaux de code, messages d'erreur, ...) plutôt que de longs discours qui n'ont ni queue ni tête ;)

Ensuite n'hésite pas à lire la documentation, les tutoriels, les exemples, le wiki, les projets SFML, les autres posts sur ce forum, etc. Je pense qu'il y a largement de quoi faire pour trouver comment dessiner deux sprites dans une autre classe.

Les erreurs à propos de sf::NonCopyable surviennent lorsque tu tentes de copier quelque chose qui ne l'est pas (comme une fenêtre). Donc... ne copie pas (pense aux références).
Titre: Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
Posté par: natou2000 le Juillet 16, 2018, 11:43:36 pm
Oui c'est vraie que c'était un peu du blabla  :-\  ce que je veux faire c'est d'éviter de faire window.draw(OBJETS.getsprite());


par :

Objets.draw(window);

Un truc dans le genre ;D de façon à que le/les sprites de "Objets" se dessinent seul  :P
Titre: Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
Posté par: G. le Juillet 17, 2018, 08:10:25 am
https://www.sfml-dev.org/documentation/2.5.0-fr/classsf_1_1Drawable.php
As-tu tenté d'hériter de sf::Drawable ? Ça fait ce que tu sembles vouloir faire.
Titre: Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
Posté par: natou2000 le Juillet 17, 2018, 03:30:27 pm
Bonjours =) je reviens rapidement sur mon topic pour vous dire que j'ai trouvez la solution à mon problème en suivant le conseil de Laurent ( regarder d'autre projet SFML) je tiens quand même à dire que c'était assez difficile de les trouver ... Parfois ils étaient trop complexe, dans un langage trop différent j'ai dû prendre mon temps analysé mais en soit j'ai appris d'autre truc. Bref j'vais quand même écrire la solution du problème que j'ai trouvé dans un code d'un russe sur Github  ;D

enfaite vue que Sf::RenderWindow est non copyable il suffisait juste d'y envoyé son pointeur ...

oui c'était tout simple  ;D ;D ;D

void draw(sf::RenderWindow &window){
    window.draw(m_sprite);
}

voilà voilà Merci de vos réponses :)
Titre: Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
Posté par: Laurent le Juillet 17, 2018, 03:33:23 pm
Ce n'est pas un pointeur mais une référence, et c'est très précisément ce que je t'avais suggéré dans ma première réponse.