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

Auteur Sujet: sf::renderWindow en paramètre à sf::Thread  (Lu 2380 fois)

0 Membres et 1 Invité sur ce sujet

luciole

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
sf::renderWindow en paramètre à sf::Thread
« le: Novembre 28, 2013, 10:07:26 pm »
Bonsoir :)
J'ai un petit souci concernant mon code.

J'aimerais afficher dans mon jeu une petite indication en bas de la fenêtre sur l'objectif à remplir. Pour ce faire j'utilise les Threads mais un problème est survenu :/

J'aimerai passer en paramètre dans mon thread ma scene (sf::renderWindow) mais je n'y arrive pas..
void dispObjectif(std::string objectif, sf::RenderWindow& scene); //Le prototype de ma fonction.

Thread aideObjectif(&dispObjectif, objectif,  scene); // la création de mon thread
Lorsque je compile j'obtient cette erreur : "error: excepted primary-expression  before '&' token"

Si vous avez une solution ça m'aiderait bien :/

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : sf::renderWindow en paramètre à sf::Thread
« Réponse #1 le: Novembre 29, 2013, 01:26:06 am »
Dans tous les cas je ne crois pas avoir vu de constructeur sf::Thread avec 3 paramètres.
(et y'a aussi des chances pour que l'utilisation de threads pour ce que tu veux faire soit grave superflue)

titouan

  • Newbie
  • *
  • Messages: 19
    • Voir le profil
Re : sf::renderWindow en paramètre à sf::Thread
« Réponse #2 le: Novembre 29, 2013, 02:46:40 pm »
C'est un thread qui est sensé bloqué la fenêtre pendant son exécution ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : sf::renderWindow en paramètre à sf::Thread
« Réponse #3 le: Novembre 29, 2013, 03:25:32 pm »
C'est sf::Thread, pas Thread. Comme tu ne nous montre que très peu de code, on ne sait pas si tu as fait un "using namespace sf". Ensuite effectivement le constructeur que tu essayes d'utiliser n'existe pas. Et enfin, même si ta fonction prend une référence vers un sf::RenderWindow, sf::Thread lui va la prendre par copie. Il faut soit utiliser un pointeur, soit std::ref (C++11).
Laurent Gomila - SFML developer

luciole

  • Newbie
  • *
  • Messages: 3
    • Voir le profil
Re : sf::renderWindow en paramètre à sf::Thread
« Réponse #4 le: Novembre 29, 2013, 04:04:56 pm »
J'ai effectivement fait un "using namespace sf;".
Peut-être que l'utilisation d'un thread est superflue mais c'est comme ça que je conçois la chose de mon coté :/
(Je souhaite faire afficher dans un coin un message indiquant l'objectif à atteindre lorsqu'on appuie sur une touche puis qui disparaîtrais progressivement, le jeu lui continuant à tourner).

J'allais justement me pencher sur un pointeur donc merci :)
Concernant le constructeur je m'arrangerais donc pour passer mon objectif à ma fonction d'une autre manière.
merci pour vos réponse :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : sf::renderWindow en paramètre à sf::Thread
« Réponse #5 le: Novembre 29, 2013, 04:09:25 pm »
Citer
Concernant le constructeur je m'arrangerais donc pour passer mon objectif à ma fonction d'une autre manière.
Si tu codes en C++11, pense aux lambdas ou à std::bind. Mais bon si c'était le cas tu utiliserais aussi std::thread, pas sf::Thread.
Laurent Gomila - SFML developer