Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fermeture de la fenêtre dès appel de la fonction

    4 novembre 2006 à 21:48:55

    Re-bonsoir. (quel enquiquineur je suis :lol: )
    Dans mon code de malade (trop long à expliquer ou à copier :p ), je fais appel à une fonction à un moment. Seulement, cette dernière ferme la fenêtre sans qu'on le lui ai demandé.
    Voici le code :

    jeu.c


    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_image.h>
    #include <SDL/SDL_ttf.h>

    #include "constantes.h"

    void nouvellePartie(SDL_Surface* ecran)
    {
        SDL_Surface *menu = IMG_Load ("menu.png"), *fenetre = IMG_Load("fenetre.png"), *texte = NULL;
        SDL_Rect positionMenu, positionFenetre, positionTexte, positionTxt;

        positionMenu.x = 0;
        positionMenu.y = 0;
        positionFenetre.x = (ecran->w/2) - (fenetre->w/2);
        positionFenetre.y = (ecran->h/2) - (fenetre->h/2);
        positionTexte.x = (ecran->w/2) - (texte->w/2);
        positionTexte.y = (ecran->h/2) - (TAILLE_TEXTE + 5);
        positionTxt.x = (ecran->w/2) - (fenetre->w/2) + 30;
        positionTxt.y = (ecran->h/2) - (fenetre->h/2) + 31;

        TTF_Font *policeTexte = NULL, *policeTxt = NULL;

        policeTexte = TTF_OpenFont("fontaine.ttf", TAILLE_TEXTE);
        policeTxt = TTF_OpenFont("valence.ttf", TAILLE_TXT);
        SDL_Color couleurNoire = {COULEUR_TEXTE};
        texte = TTF_RenderText_Blended(policeTexte, "Nom de la partie :", couleurNoire);

        SDL_BlitSurface(menu, NULL, ecran, &positionMenu);
        SDL_BlitSurface(fenetre, NULL, ecran, &positionFenetre);
        SDL_BlitSurface(texte, NULL, ecran, &positionTexte);
        SDL_Flip(ecran);

        int continuer = 1;

        while(continuer)
        {
            SDL_Event eventNPartie;

            SDL_WaitEvent(&eventNPartie);
            switch(eventNPartie.type)
            {
                case SDL_KEYDOWN:
                    switch(eventNPartie.key.keysym.sym)
                    {
                        case SDLK_RETURN:
                            break;
                        case SDLK_ESCAPE:
                            continuer = 0;
                            break;
                    }
                    break;
            }

        SDL_BlitSurface(menu, NULL, ecran, &positionMenu);
        SDL_BlitSurface(fenetre, NULL, ecran, &positionFenetre);
        SDL_BlitSurface(texte, NULL, ecran, &positionTexte);
        SDL_Flip(ecran);
        }
    }


    Pourquoi ferme-t-il la fenêtre ?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      4 novembre 2006 à 21:50:46

      tu n'as pas d'erreur dans stderr.txt ?
      • Partager sur Facebook
      • Partager sur Twitter
        4 novembre 2006 à 21:53:17

        Ta un espace entre IMG_Load et ("menu.pgn") sa pourrait peut-etre etre la cause
        • Partager sur Facebook
        • Partager sur Twitter
          4 novembre 2006 à 21:57:38

          Non, rien dans stderr.txt
          Et pour l'espace entre IMG_Load et ("menu.png");, j'ai enlevé mais ça ne change rien à la chose.
          • Partager sur Facebook
          • Partager sur Twitter
            4 novembre 2006 à 21:59:36

            Si tu met ton code dans le main il fonctionne?
            • Partager sur Facebook
            • Partager sur Twitter
              4 novembre 2006 à 22:00:31

              oui moi jaime pas trop le
              SDL_Event eventNPartie;
              dans la boucle principale ^^
              mais le avec l'enumeration des autre variable (si on peu appeler sa comme sa...)
              • Partager sur Facebook
              • Partager sur Twitter
                4 novembre 2006 à 22:03:15

                Dans main.c, ça n'affiche aucune erreur mais le problème reste le même.
                Ensuite, j'ai "mis" le SDL_Event hors de la boucle mais toujours le même problème.
                • Partager sur Facebook
                • Partager sur Twitter
                  4 novembre 2006 à 22:04:14

                  Ton compilateur ne te donne aucun warning non plus?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 novembre 2006 à 22:05:44

                    Citation : C::B

                    Compiler : GNU GCC Compiler (called directly)
                    Directory : C:\Documents and Settings\Compaq_Propriétaire\Bureau\ProjetFT\
                    --------------------------------------------------------------------------------
                    Nothing to be done.
                    Process terminated with status 0 (0 minutes, 0 seconds)
                    0 errors, 0 warnings


                    Rien.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 novembre 2006 à 22:10:52

                      J'arrive pas a voir mais tes SDL_BlitSurface dans ta bouclesont inutile puisque qu'aucun mouvement de tes images, ni changement de couleur ne ce fait et la case SDLK_RETURN est aussi inutile puisquelle ne fait rien...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 novembre 2006 à 22:15:52

                        Ca viendra en temps utile. :p:-°
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Fermeture de la fenêtre dès appel de la fonction

                        × 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