Tom's Guide > Forum > Programmation > [Résolu] Programme SDL

Lire la meilleure réponse, apportée par CRicky.

Mot :    Pseudo :           
 

Bonjour
Voila je fais un projet de mini paint c'est tiré du site du zero.

Meme si tout marche bien j'ai un problème sur l'affichage des moutons, il m'affiche une autre image de mon programme
voila le code si quelqu'un peut m'aider

Code :
  1. void selectionDuTampon ( SDL_Event *event, SDL_Surface *ecran, SDL_Surface **tampon, long i, int *w, int *h, long *pointeurSurQuitter)
  2. {
  3.     SDL_ShowCursor(SDL_DISABLE);//effacement du curseur
  4.                 switch(event->key.keysym.sym)//switch de séléction des tampons
  5.                 {
  6.                     case SDLK_1://ici une vache
  7.                         tampon[i] = SDL_LoadBMP("vache.bmp" );
  8.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 0,0,255));
  9.                         fprintf(stderr,"§§§§loadbmp vache ok §§§§\n" );
  10.                         *w = tampon[i]->w;//permet de mettre le curseur au millieu du bmp
  11.                         *h = tampon[i]->h;
  12.                         break;
  13.                     case SDLK_2://ici un arbre
  14.                         tampon[i] = SDL_LoadBMP("arbre.bmp" );
  15.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  16.                         fprintf(stderr,"§§§§loadbmp arbre ok §§§§\n" );
  17.                         *w = tampon[i]->w;//pareille
  18.                         *h = tampon[i]->h;
  19.                         break;
  20.                     case SDLK_3://ici un soleil
  21.                         tampon[i] = SDL_LoadBMP("soleil.bmp" );
  22.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  23.                         fprintf(stderr,"§§§§loadbmp soleil ok §§§§\n" );
  24.                         *w = tampon[i]->w;//identique
  25.                         *h = tampon[i]->h;
  26.                         break;
  27.                     case SDLK_4://ici les moutons
  28.                         SDL_WaitEvent(event);//attente d'une nouvelle sélection
  29.                         fprintf(stderr,"sdl_waitevent ok \n" );
  30.                         if(event->type==SDL_KEYDOWN )/*détermination du mouton*/
  31.                         {
  32.                             fprintf(stderr,"entrée dans la boucle ok \n" );
  33.                             switch(event->key.keysym.sym)
  34.                                 {
  35.                                     case SDLK_1:
  36.                                         tampon[i] = SDL_LoadBMP("mouton_1.bmp" );
  37.                                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  38.                                         fprintf(stderr,"§§§§loadbmp mouton 1§§§§\n" );
  39.                                         *w = tampon[i]->w;
  40.                                         *h = tampon[i]->h;
  41.                                         break;
  42.                                     case SDLK_2:
  43.                                         tampon[i] = SDL_LoadBMP("mouton_2.bmp" );
  44.                                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  45.                                         fprintf(stderr,"§§§§loadbmp mouton 2§§§§\n" );
  46.                                         *w = tampon[i]->w;
  47.                                         *h = tampon[i]->h;
  48.                                         break;
  49.                                     default:
  50.                                         break;
  51.                                 }
  52.                             break;
  53.                         }
  54.                         break;
  55.                     case SDLK_5://ici cheval
  56.                         tampon[i] = SDL_LoadBMP("cheval.bmp" );
  57.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  58.                         fprintf(stderr,"§§§§loadbmp cheval ok§§§§ \n" );
  59.                         *w = tampon[i]->w;
  60.                         *h = tampon[i]->h;
  61.                         break;
  62.                     case SDLK_ESCAPE:// pour sortir de facon non violente
  63.                         *pointeurSurQuitter = 1 ;
  64.                         break;
  65.                     default:
  66.                         break;
  67.                 }
  68. }




Merci d'avance

- si l'évènement n'est pas SDL_KEYDOWN, ça ne fait rien. Il te faudrait peut-être faire une boucle.
- teste le retour de SDL_WaitEvent()
- utilise un nouvel objet event, ne le réutilise pas, ça peut éviter de futurs problèmes (si tu veux réutiliser l'ancien event).
Je dis ça pour te débloquer, mais c'est pas comme ça qu'on gère les évènements. Normalement dans ton code, tu ne devrais avoir qu'une seule gestion d'évènement mais tu dois la rendre contextuelle. Exemple: dans SelectionDuTampon, tu teste si tu es dans un mode normal (tu fais ton switch principal), ou si tu es dans un mode de sélection de mouton (tu fais un autre switch). En gros, tu ne dois récupérer les évènements qu'à un seul endroit, sinon, tu vas vite te perdre dans ton code.
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
Meilleure réponse

- si l'évènement n'est pas SDL_KEYDOWN, ça ne fait rien. Il te faudrait peut-être faire une boucle.
- teste le retour de SDL_WaitEvent()
- utilise un nouvel objet event, ne le réutilise pas, ça peut éviter de futurs problèmes (si tu veux réutiliser l'ancien event).
Je dis ça pour te débloquer, mais c'est pas comme ça qu'on gère les évènements. Normalement dans ton code, tu ne devrais avoir qu'une seule gestion d'évènement mais tu dois la rendre contextuelle. Exemple: dans SelectionDuTampon, tu teste si tu es dans un mode normal (tu fais ton switch principal), ou si tu es dans un mode de sélection de mouton (tu fais un autre switch). En gros, tu ne dois récupérer les évènements qu'à un seul endroit, sinon, tu vas vite te perdre dans ton code.


Message édité par CRicky le 03-06-2009 à 20:33:39
------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Merci pour les pistes de recherche

J'ai bien compris le principe du "mode" contextuelle mais je vois mal comment la mettre en pratique.

si j'appui sur la touche 4 pour entré dans la catégorie des moutons il faut bien que j'ai un autre event pour choisir lequel je veux.

autre truc bizarre si je reste appuyer mon mouton apparait et je peux alors l'utiliser comme je veux mais dès que je relâche il part ????

Répondre à fartax

J'ai fait quelques bidouillage et j'ai adapté un peu comme tu me la dis.
j'ai rajouté une variable "contextuelle" qui me permet de me placer dans le bon switch en gardant un seul

Code :
  1. SDL_WaitEvent(&event);


Ha oui et c'est un

Code :
  1. case SDL_KEYUP:


qui me balance dans cette fonction.

Code :
  1. void selectionDuTampon ( SDL_Event *event, SDL_Surface *ecran, SDL_Surface **tampon, long i, int *w, int *h, long *pointeurSurQuitter)
  2. {
  3.     SDL_ShowCursor(SDL_DISABLE);//effacement du curseur
  4.     long contextuelle= 0;
  5.     switch(contextuelle)
  6.     {
  7.         case 0:
  8.                 switch(event->key.keysym.sym)//switch de séléction des tampons
  9.                 {
  10.                     case SDLK_1://ici une vache
  11.                         tampon[i] = SDL_LoadBMP("vache.bmp" );
  12.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 0,0,255));
  13.                         fprintf(stderr,"§§§§loadbmp vache ok §§§§\n" );
  14.                         *w = tampon[i]->w;//permet de mettre le curseur au millieu du bmp
  15.                         *h = tampon[i]->h;
  16.                         break;
  17.                     case SDLK_2://ici un arbre
  18.                         tampon[i] = SDL_LoadBMP("arbre.bmp" );
  19.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  20.                         fprintf(stderr,"§§§§loadbmp arbre ok §§§§\n" );
  21.                         *w = tampon[i]->w;//pareille
  22.                         *h = tampon[i]->h;
  23.                         break;
  24.                     case SDLK_3://ici un soleil
  25.                         tampon[i] = SDL_LoadBMP("soleil.bmp" );
  26.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  27.                         fprintf(stderr,"§§§§loadbmp soleil ok §§§§\n" );
  28.                         *w = tampon[i]->w;//identique
  29.                         *h = tampon[i]->h;
  30.                         break;
  31.                     case SDLK_4://ici les moutons
  32.                         contextuelle ++;
  33.                         break;
  34.                     case SDLK_5://ici cheval
  35.                         tampon[i] = SDL_LoadBMP("cheval.bmp" );
  36.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  37.                         fprintf(stderr,"§§§§loadbmp cheval ok§§§§ \n" );
  38.                         *w = tampon[i]->w;
  39.                         *h = tampon[i]->h;
  40.                         break;
  41.                     case SDLK_ESCAPE:// pour sortir de facon non violente
  42.                         *pointeurSurQuitter = 1 ;
  43.                         break;
  44.                     default:
  45.                         break;
  46.                 }
  47.             break;
  48.         case 1:
  49.             contextuelle --;
  50.             fprintf(stderr,"entrée dans le case 1: ok \n" );
  51.             switch(event->key.keysym.sym)
  52.                 {
  53.                     case SDLK_1:
  54.                         tampon[i] = SDL_LoadBMP("mouton_1.bmp" );
  55.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  56.                         fprintf(stderr,"§§§§loadbmp mouton 1§§§§\n" );
  57.                         *w = tampon[i]->w;
  58.                         *h = tampon[i]->h;
  59.                         break;
  60.                     case SDLK_2:
  61.                         tampon[i] = SDL_LoadBMP("mouton_2.bmp" );
  62.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  63.                         fprintf(stderr,"§§§§loadbmp mouton 2§§§§\n" );
  64.                         *w = tampon[i]->w;
  65.                         *h = tampon[i]->h;
  66.                         break;
  67.                     default:
  68.                         break;
  69.                 }
  70.             break;
  71.     }
  72. }


mais ça ne donne pas grand chose malheureusement.
J'ai pas essayer les autres soluce pour débloqué, est ce que tu pense que sa vaut le coup.

Répondre à fartax

C'est bien sauf que lorsque tu repasse dans la fonction, tu prends une nouvelle variable que tu remet à 0 à la ligne "long contextuelle= 0;". Il faut que cette variable reste quand tu sors de la fonction, donc je vois 3 possibilités:
1. Tu déclares ta variable en globale et pas en locale.
2. Tu fais passer la valeur en paramètre, et c'est l'appelant qui gère le contexte.
3. Tu déclares ta variable locale en static qui fait qu'au prochain appel, "contextuelle" gardera son ancienne valeur.

Je te suggère la première méthode, c'est pas la plus élégante, mais c'est la plus simple et ça reste clair.

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Merci pour toute tes informations.

J'ai essayer avec la valeur globale et sa fonctionne super par contre pour se qui est du paramètre sa bug un peu .

Code :
  1. void selectionDuTampon ( SDL_Event *event, SDL_Surface *ecran, SDL_Surface **tampon, long i, int *w, int *h, long *PointeurSurQuitter, long *contextuelle)
  2. {
  3.     SDL_ShowCursor(SDL_DISABLE);//effacement du curseur
  4.     fprintf(stderr,"%ld\n",*contextuelle);
  5.     switch(*contextuelle)
  6.     {
  7.         case 0:
  8.                 switch(event->key.keysym.sym)//switch de séléction des tampons
  9.                 {
  10.                     case SDLK_1://ici une vache
  11.                         tampon[i] = SDL_LoadBMP("vache.bmp" );
  12.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 0,0,255));
  13.                         fprintf(stderr,"§§§§loadbmp vache ok §§§§\n" );
  14.                         *w = tampon[i]->w;//permet de mettre le curseur au millieu du bmp
  15.                         *h = tampon[i]->h;
  16.                         break;
  17.                     case SDLK_2://ici un arbre
  18.                         tampon[i] = SDL_LoadBMP("arbre.bmp" );
  19.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  20.                         fprintf(stderr,"§§§§loadbmp arbre ok §§§§\n" );
  21.                         *w = tampon[i]->w;//pareille
  22.                         *h = tampon[i]->h;
  23.                         break;
  24.                     case SDLK_3://ici un soleil
  25.                         tampon[i] = SDL_LoadBMP("soleil.bmp" );
  26.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  27.                         fprintf(stderr,"§§§§loadbmp soleil ok §§§§\n" );
  28.                         *w = tampon[i]->w;//identique
  29.                         *h = tampon[i]->h;
  30.                         break;
  31.                     case SDLK_4://ici les moutons
  32.                         *contextuelle ++;
  33.                         fprintf(stderr,"%ld\n",contextuelle);
  34.                         break;
  35.                     case SDLK_5://ici cheval
  36.                         tampon[i] = SDL_LoadBMP("cheval.bmp" );
  37.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  38.                         fprintf(stderr,"§§§§loadbmp cheval ok§§§§ \n" );
  39.                         *w = tampon[i]->w;
  40.                         *h = tampon[i]->h;
  41.                         break;
  42.                     case SDLK_ESCAPE:// pour sortir de facon non violente
  43.                         *PointeurSurQuitter = 1 ;
  44.                         break;
  45.                     default:
  46.                         break;
  47.                 }
  48.             break;
  49.         case 1:
  50.             *contextuelle --;
  51.             fprintf(stderr,"%ld\n",*contextuelle);
  52.             fprintf(stderr,"entrée dans le case 1: ok \n" );
  53.             switch(event->key.keysym.sym)
  54.                 {
  55.                     case SDLK_1:
  56.                         tampon[i] = SDL_LoadBMP("mouton_1.bmp" );
  57.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  58.                         fprintf(stderr,"§§§§loadbmp mouton 1§§§§\n" );
  59.                         *w = tampon[i]->w;
  60.                         *h = tampon[i]->h;
  61.                         break;
  62.                     case SDLK_2:
  63.                         tampon[i] = SDL_LoadBMP("mouton_2.bmp" );
  64.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  65.                         fprintf(stderr,"§§§§loadbmp mouton 2§§§§\n" );
  66.                         *w = tampon[i]->w;
  67.                         *h = tampon[i]->h;
  68.                         break;
  69.                     default:
  70.                         break;
  71.                 }
  72.             break;
  73.     }
  74. }



merci pour tout tes conseils, continue comme ça :D

désoler pour le temps de réponse mais j'avais des partiels de médecines

a plus :hello:


Répondre à fartax

Dans ton case SDLK_4, il te manque un * avant ton second "contextuelle", mais ce n'est que de l'affichage, le reste doit fonctionner.
Après ça dépend comment tu utilises ta variable à l'appel de selectionDuTampon(), parce que le problème est le même: si tu as déclaré ta variable dans une fonction, la variable n'est valable que dans cette fonction.

Autre chose: généralement on teste la validité des paramètres pour limiter le nombre de bug, donc au début de ta fonction, j'ajouterais ceci:

Code :
  1. if (contextuelle == NULL)
  2.   return;


------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Bonjour

J'ai déclaré la fonction dans le main

Code :
  1. long contextuelle = 0;



puis j'appelle ma fonction

Code :
  1. SDL_WaitEvent(&event);
  2.         switch(event.type)
  3.             {
  4.             case SDL_KEYUP://gestion des différentes touches
  5.                 o = selectionDuTampon(&event,ecran,tampon,i,&w,&h,&quitter,&contextuelle);
  6.                 if (o == -1)
  7.                 {
  8.                     for(i=o;i>=0;i--)  // libération des surfaces
  9.                     {
  10.                         SDL_FreeSurface(tampon[i]);
  11.                         fprintf(stderr,"sdl_freesurface %ld ok\n", i);
  12.                     }
  13.                    
  14.                     SDL_Quit();
  15.                 }
  16.                 break;



J'ai insérer la vérification et apparament le pointeur est bon.

Mais sa m'étonne que

Code :
  1. *contextuelle ++;

ne marche pas vu que j'ai déjà cette méthode dans un programme et il fonctionne parfaitement.

Répondre à fartax

Ah oui, j'avais pas vu ça, ++ est prioritaire sur *, donc *contextuelle++ est équivalent à *(contextuelle++) (tu décale le pointeur avant de lire le contenu.
Donc, tu dois mettre les parenthèses pour éviter les priorités:

Code :
  1. (*contextuelle)++;


------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

UN GRAND MERCI

Voila tout fonctionne au poil, grâce à toi CRicky.
Juste une petite question encore :ange:
j'ai pas utiliser

Code :
  1. *contextuelle ++;


dans mon autre programme
mais ça

Code :
  1. *pointeurSurHeure = *pointeurSurMinute /60;


tu pourrais me dire comment l'ordi l'interprète ( en terme de priorité )?

ainsi que ça :D

Code :
  1. *mon pointeur += quelquechose;



Encore merci.

Répondre à fartax

Et voici le code au final si ça peut aider d'autre qui serai dans le même cas.

Code :
  1. int selectionDuTampon ( SDL_Event *event, SDL_Surface *ecran, SDL_Surface **tampon, long i, int *w, int *h, long *PointeurSurQuitter, long *contextuelle)
  2. {
  3.     SDL_ShowCursor(SDL_DISABLE);//effacement du curseur
  4.     fprintf(stderr,"%ld\n",*contextuelle);
  5.     if (contextuelle == NULL)
  6.         return -1;
  7.     switch(*contextuelle)
  8.     {
  9.         case 0:
  10.                 switch(event->key.keysym.sym)//switch de séléction des tampons
  11.                 {
  12.                     case SDLK_1://ici une vache
  13.                         tampon[i] = SDL_LoadBMP("vache.bmp" );
  14.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 0,0,255));
  15.                         fprintf(stderr,"§§§§loadbmp vache ok §§§§\n" );
  16.                         *w = tampon[i]->w;//permet de mettre le curseur au millieu du bmp
  17.                         *h = tampon[i]->h;
  18.                         break;
  19.                     case SDLK_2://ici un arbre
  20.                         tampon[i] = SDL_LoadBMP("arbre.bmp" );
  21.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  22.                         fprintf(stderr,"§§§§loadbmp arbre ok §§§§\n" );
  23.                         *w = tampon[i]->w;//pareille
  24.                         *h = tampon[i]->h;
  25.                         break;
  26.                     case SDLK_3://ici un soleil
  27.                         tampon[i] = SDL_LoadBMP("soleil.bmp" );
  28.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  29.                         fprintf(stderr,"§§§§loadbmp soleil ok §§§§\n" );
  30.                         *w = tampon[i]->w;//identique
  31.                         *h = tampon[i]->h;
  32.                         break;
  33.                     case SDLK_4://ici les moutons
  34.                         *contextuelle += 1;
  35.                         fprintf(stderr,"%ld\n",*contextuelle);
  36.                         break;
  37.                     case SDLK_5://ici cheval
  38.                         tampon[i] = SDL_LoadBMP("cheval.bmp" );
  39.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  40.                         fprintf(stderr,"§§§§loadbmp cheval ok§§§§ \n" );
  41.                         *w = tampon[i]->w;
  42.                         *h = tampon[i]->h;
  43.                         break;
  44.                     case SDLK_ESCAPE:// pour sortir de facon non violente
  45.                         *PointeurSurQuitter = 1 ;
  46.                         break;
  47.                     default:
  48.                         break;
  49.                 }
  50.             break;
  51.         case 1:
  52.             *contextuelle -= 1;
  53.             fprintf(stderr,"%ld\n",*contextuelle);
  54.             fprintf(stderr,"entrée dans le case 1: ok \n" );
  55.             switch(event->key.keysym.sym)
  56.                 {
  57.                     case SDLK_1:
  58.                         tampon[i] = SDL_LoadBMP("mouton_1.bmp" );
  59.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  60.                         fprintf(stderr,"§§§§loadbmp mouton 1§§§§\n" );
  61.                         *w = tampon[i]->w;
  62.                         *h = tampon[i]->h;
  63.                         break;
  64.                     case SDLK_2:
  65.                         tampon[i] = SDL_LoadBMP("mouton_2.bmp" );
  66.                         SDL_SetColorKey(tampon[i],SDL_SRCCOLORKEY,SDL_MapRGB(ecran->format, 255,255,255));
  67.                         fprintf(stderr,"§§§§loadbmp mouton 2§§§§\n" );
  68.                         *w = tampon[i]->w;
  69.                         *h = tampon[i]->h;
  70.                         break;
  71.                     default:
  72.                         break;
  73.                 }
  74.             break;
  75.   }
  76.   return 0;
  77. }



un grand merci a CRicky

Répondre à fartax

Un lien sur les précédences:
http://cppreference.com/wiki/operator_precedence

Dans un même groupe la priorité est de gauche à droite dans le code C++.
Plus le groupe est petit, plus il est prioritaire.

Attention, car il y a 2 opérateurs *, 2 opérateurs ++, pour les cas pointeurs et cas calculs.

Pour simplifier, les pointeurs sont prioritaire sur tout ce qui est "calcul". Le ++ et -- pouvant être à la fois les 2, c'est là que l'on se fait piéger.
Tes 2 codes correspondent certainement à ce que tu attend *quelquechose équivalent à (*quelquechose)

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Merci
ce tableau est à mettre dans ses favoris. :D

La j'ai plus de question peut être une autre fois.

Je pense que l'on peut considérer le sujet comme RESOLU.

Répondre à fartax
Tom's Guide > Forum > Programmation > [Résolu] Programme SDL
Aller à :

Il y a 2474 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens