Partage
  • Partager sur Facebook
  • Partager sur Twitter

erreur d'execution de mon programme

quand je veux écrire du texte avec la SDL

    8 mars 2008 à 21:13:59

    class="br0">();
        SDL_Quit();
        return EXIT_SUCCESS;
    }

    et le code de m@teo il y a juste à aller voir ici
    r les numéros de ligne
    1. texte = TTF_RenderText_Blended(police, "Choisissez votre resolution", couleurNoire);

    J'ai relu tout mon code plusieurs fois mais je n'ai pas trouver d'erreur. j'ai alors copier un code de m@teo(celui pour le compteur) pour vérifier et il me met la même erreur.

    le code de mon programme le voilà:
    1. #include <stdlib.h>
    2. #include <stdio.h>
    3. #include <SDL/SDL.h>
    4. #include <SDL/SDL_image.h>
    5. #include <SDL/SDL_ttf.h>
    6. #define POSITION_X  150
    7. #define POSITION_Y  100
    8. int main(int argc, char *argv[])
    9. {
    10.         int i=0,continuer=1;
    11.         SDL_Event event;
    12.         SDL_Surface *ecran=NULL, *fond = NULL, *bouton = NULL, *bouton2 = NULL, *texte = NULL;
    13.         TTF_Font *police = NULL;
    14.         SDL_Color couleurNoire = {0, 0, 0};
    15.         SDL_Rect position, souris, positionfond;
    16.         position.x = 0;
    17.     position.y = 0;
    18.         positionfond.x = 0;
    19.         positionfond.y = 0;
    20.     SDL_Init(SDL_INIT_VIDEO);
    21.         TTF_Init();
    22.     ecran = SDL_SetVideoMode(500, 500, 32, SDL_HWSURFACE| SDL_DOUBLEBUF);
    23.         SDL_WM_SetCaption("Projet info 1", NULL);
    24.         SDL_WarpMouse(ecran->w / 2, ecran->h / 2);
    25.         police = TTF_OpenFont("KELTB.TTF", 20);
    26.         while (continuer)
    27.     {
    28.         SDL_WaitEvent(&event);
    29.         switch(event.type)
    30.         {
    31.             case SDL_QUIT:
    32.             continuer = 0;
    33.             break;
    34.         case SDL_KEYDOWN:
    35.             continuer = 0;
    36.             break;
    37.                 case SDL_MOUSEMOTION:
    38.             souris.x = event.button.x;
    39.             souris.y = event.button.y;
    40.             break;
    41.         }
    42.                 fond = SDL_LoadBMP("fond1.bmp");
    43.                 bouton2 = IMG_Load("bouton2.png");
    44.                 bouton = IMG_Load("bouton.png");
    45.                 SDL_BlitSurface(fond, NULL, ecran, &positionfond);
    46.                 position.x = 60;  
    47.         position.y = 5;
    48.                 texte = TTF_RenderText_Blended(police, "Choisissez votre resolution", couleurNoire);
    49.                 position.x = POSITION_X;  
    50.         position.y = POSITION_Y;
    51.                 if(souris.x>=POSITION_X && souris.x<=POSITION_X+207 && souris.y>=POSITION_Y && souris.y<=POSITION_Y+67)
    52.                 {
    53.                                   SDL_BlitSurface(bouton2, NULL, ecran, &position);
    54.                 }
    55.                 else
    56.                 {                
    57.                                   SDL_BlitSurface(bouton, NULL, ecran, &position);
    58.                 }        
    59.                 position.x = POSITION_X;  
    60.         position.y = POSITION_Y+117;
    61.                 if(souris.x>=POSITION_X && souris.x<=POSITION_X+207 && souris.y>=POSITION_Y+117 && souris.y<=POSITION_Y+184)
    62.                 {
    63.                                   SDL_BlitSurface(bouton2, NULL, ecran, &position);
    64.                 }
    65.                 else
    66.                 {                
    67.                                   SDL_BlitSurface(bouton, NULL, ecran, &position);
    68.                 }
    69.         position.x = POSITION_X;  
    70.         position.y = POSITION_Y+234;
    71.                 if(souris.x>=POSITION_X && souris.x<=POSITION_X+207 && souris.y>=POSITION_Y+234 && souris.y<=POSITION_Y+301)
    72.                 {
    73.                                   SDL_BlitSurface(bouton2, NULL, ecran, &position);
    74.                 }
    75.                 else
    76.                 {                
    77.                                   SDL_BlitSurface(bouton, NULL, ecran, &position);
    78.                 }       
    79.                 position.x = 60;  
    80.         position.y = 20;
    81.                 texte = TTF_RenderText_Blended(police, "Choisissez votre résolution", couleurNoire);
    82.                           SDL_Flip(ecran);    
    83.                 }
    84.     SDL_FreeSurface(bouton);
    85.         SDL_FreeSurface(bouton2);
    86.         SDL_FreeSurface(fond);
    87.         TTF_CloseFont(police);
    88.         TTF_Quit
    • Partager sur Facebook
    • Partager sur Twitter
      8 mars 2008 à 21:20:17

      police n'a pas été chargé correctement. (à première vue, il faut plus de code pour en dire plus)
      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2008 à 12:41:43

        Normalement la police est bien chargée. J'ai recompilé mon projet sous code blocks avec un autre pc et il fonctionne.
        Je ne vois vraiment pas d'où ça peut venir
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2008 à 14:05:55

          A tout hasard, en persévérant dans la même idée, fait un test pour vérifié que tout est correctement chargé avant d'utiliser:
          1. police = TTF_OpenFont("KELTB.TTF", 20);
          2. if(police == NULL)
          3. {
          4.    printf("Police non chargée");
          5.    exit(1);
          6. }


          et ce même test pour chacunes des surfaces:
          1. fond = SDL_LoadBMP("fond1.bmp");
          2. bouton2 = IMG_Load("bouton2.png");
          3. bouton = IMG_Load("bouton.png");
          4. //avant chaque blit teste la validité de tes pointeurs
          5. SDL_BlitSurface(fond, NULL, ecran, &positionfond);
          6. texte = TTF_RenderText_Blended(police, "Choisissez votre resolution", couleurNoire); // après cette ligne aussi



          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2008 à 14:19:01

            Effectivement le pointeur police n'est pas bon. Mais je ne vois pas pourquoi
            • Partager sur Facebook
            • Partager sur Twitter
              9 mars 2008 à 14:40:31

              Initialise la TTF puis crée un pointeur , ne met pas null par défaut
              autre chose , pk tu n'as pas blitter la surface texte ?je crois que tu dois le faire pour que le texte s'affiche sur l'ecran.
              Bonn chance
              • Partager sur Facebook
              • Partager sur Twitter
                10 mars 2008 à 0:02:13

                SI le pointeur de police n'est pas bon ça veut dire tout simplement que tu n'as pas chargé correctement la police, et, par déduction logique, que le fichier KELTB.TTF n'est pas présent dans le répertoire de ton exécutable.
                • Partager sur Facebook
                • Partager sur Twitter

                erreur d'execution de mon programme

                × 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