salut tout le monde,
j'ai un problème avec les threads sur SDL, dans le cadre de la gestion de sprites, j'ai créé un thread pour changer l'image tout les x ms.
en gros:
et ... l'image ne change pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 // dans la classe srpite je créer un thread avec en parametre le pointeur vers l'objet lui meme... thread = SDL_CreateThread(ThreadFunc, this); //du code .... //... //la fonction du thread int ThreadFunc(void* Data) { //je converti le parametre Data en un pointeur vers l'objet Sprite Sprite* sprite = (Sprite*)Data; //et je boucle.. while(1){ SDL_Delay(10); //la méthode line() de la classe sprite change l'image sprite->line(); } return 0; }
par contre si je remplace la fonction par :
et ben l'image change une fois...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int ThreadFunc(void* Data) { Sprite* sprite = (Sprite*)Data; sprite->line(); return 0; }
j'avoue ne pas comprendre grand chose, y a t'il un aspect des threads que je n'ai pas compris? ou une erreur bête? ou encore une astuce?
merci d'avance pour vos réponses
Partager