Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme s'ouvre se ferme pourtant la boucle des évenement est la

que faire

    13 mai 2006 à 22:09:00

    Je code u n ptit programme qui quand on appyue sur la flech e haut change d'image.
    bon seulemnt j'ai un probleme mon programme s"'ouvre et se ferme je n'y comprend rien !
    voici mon code

    Main.c


    #include <stdlib.h>
    #include <SDL/SDL.h>
    #include <time.h>
    #include <string.h>



    #include "../afficher.h"



    int main(int argc, char *argv[])
    {

        SDL_Surface *ecran = NULL;
        SDL_Rect positionNbr;
        SDL_Surface *n = NULL;

    char test;
        positionNbr.x = 0;
    positionNbr.y = 0;



       
       
        SDL_Init(SDL_INIT_VIDEO);
       
        ecran = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); //taille
        SDL_WM_SetCaption("Star wars", NULL); // titre

            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
       

       
       
        SDL_EnableKeyRepeat(10, 10);// répétition des touches
    // tout les évenements

        int continuer = 0;
        SDL_Event event;

        while (!continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
        case SDL_QUIT:
            continuer = 1;
            break;
                case SDL_KEYDOWN:
                     switch(event.key.keysym.sym)
                     {

                       // les chiffres
                       case SDLK_UP: //haut
    test++;

                            break;
                       case SDLK_DOWN: //bas
    test--;

                            break;       
           
                       }
                 break;
        }

            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
    /* La commence l'affichage de chiffres */
     afficher_chiffres(test,ecran);


            SDL_Flip(ecran);
            }
       

    //liberation


         /* On libère la surface */
         
        SDL_Quit();

        return EXIT_SUCCESS;

    }


    ../afficher.c
    #include <stdlib.h>
    #include <SDL/SDL.h>
    #include <time.h>
    #include <string.h>
    void afficher_chiffres(char chiffre, SDL_Surface* ecran)
    {
               
        SDL_Surface *n = NULL;
        SDL_Rect positionNbr;
            positionNbr.x = 0;
    positionNbr.y = 0
      char
      chiffre2[] = {},
       chaine3[] = {"/img/"},
          chaine4[] = {".bmp"};
        strcat(chiffre2, chaine3);
        strcat(chiffre2, chiffre);
        strcat(chiffre2, chaine4);
                     
                          n = SDL_LoadBMP(chiffre2);
     

    SDL_SetColorKey(n, SDL_SRCCOLORKEY, SDL_MapRGB(n->format, 255, 255, 255));
    SDL_BlitSurface(n, NULL, ecran, &positionNbr);



    }


    ../afficher.h
    #include <stdlib.h>
    #include <SDL/SDL.h>
    #include <time.h>
    #include <string.h>
    void afficher_chiffres(char chiffre, SDL_Surface* ecran);


    j'ai vérifier la boucle des évenemlent normalement tout de vrait marcher en plus le programme n'afficghe pas d'erreur
    • Partager sur Facebook
    • Partager sur Twitter
    Engineer in Training please wait fr social life ---- Vist www.charybde.be
      13 mai 2006 à 22:18:27

      Dans ton main.c tu déclare la variable test mais tu ne l'initialise pas donc elle contient n'importe quoi.
      • Partager sur Facebook
      • Partager sur Twitter
        13 mai 2006 à 22:50:45

        Donc elle peut contenir n'importe quoi, ce n'est pas une éventualitée, mais effectivement c'est plus sur de l'initialisée CORRECTEMENT
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2006 à 23:01:10

          En fait ce que tu veut faire c'est prendre une autre image de ton dossier quand tu incrémente ou décrémente la variable test ?
          Parceque si c'est ça, à aucun moment tu n'utilise une fonction qui parcours ton dossier pour recuperer le nom d'un fichier.
          • Partager sur Facebook
          • Partager sur Twitter
            14 mai 2006 à 10:10:51

            Mes fichiers s'appellent 0.bmp, 1.bmp,...
            Grace a la fonction afficher_chiffre qui en concoctant dses chaines arrive a reproduire le chemin correct
            J'ai initialiser char test = 0;
            mais ca ne marche toujours pas
            • Partager sur Facebook
            • Partager sur Twitter
            Engineer in Training please wait fr social life ---- Vist www.charybde.be

            Programme s'ouvre se ferme pourtant la boucle des évenement est la

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown