Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: luciole le Novembre 28, 2013, 10:07:26 pm

Titre: sf::renderWindow en paramètre à sf::Thread
Posté par: luciole 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 :/
Titre: Re : sf::renderWindow en paramètre à sf::Thread
Posté par: G. 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)
Titre: Re : sf::renderWindow en paramètre à sf::Thread
Posté par: titouan le Novembre 29, 2013, 02:46:40 pm
C'est un thread qui est sensé bloqué la fenêtre pendant son exécution ?
Titre: Re : sf::renderWindow en paramètre à sf::Thread
Posté par: Laurent 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).
Titre: Re : sf::renderWindow en paramètre à sf::Thread
Posté par: luciole 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 :)
Titre: Re : sf::renderWindow en paramètre à sf::Thread
Posté par: Laurent 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.