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

Auteur Sujet: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]  (Lu 3568 fois)

0 Membres et 1 Invité sur ce sujet

natou2000

  • Newbie
  • *
  • Messages: 33
    • Voir le profil
    • E-mail
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

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
« Réponse #1 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).
Laurent Gomila - SFML developer

natou2000

  • Newbie
  • *
  • Messages: 33
    • Voir le profil
    • E-mail
Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
« Réponse #2 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

G.

  • Hero Member
  • *****
  • Messages: 1592
    • Voir le profil
Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
« Réponse #3 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.

natou2000

  • Newbie
  • *
  • Messages: 33
    • Voir le profil
    • E-mail
Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
« Réponse #4 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 :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Comment faire pour qu'un sprite se dessine tout seul [NON COPYABLE]
« Réponse #5 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.
Laurent Gomila - SFML developer