IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

[SDL] problèmes évènements


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut [SDL] problèmes évènements
    Bonjour,

    Voila mon problème est que lorsque je compile le compilo me sort un très grand nombre de warning:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    deplacement.c:97: warning: enumeration value `SDLK_UNKNOWN' not handled in switch
    deplacement.c:97: warning: enumeration value `SDLK_FIRST' not handled in switch
    deplacement.c:97: warning: enumeration value `SDLK_BACKSPACE' not handled in switch
    deplacement.c:97: warning: enumeration value `SDLK_TAB' not handled in switch
    ect... avec toutes les touches.

    Pourtant j'ai bien mit un default dans mes switch, voici la fonction concerné:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    void evenement (SDL_Rect *positionPhoto, SDL_Surface *ecran, SDL_Surface *photo)
    {
        SDL_Event event;
        int continuer = 1;
     
        if (SDL_EnableKeyRepeat (10, 10) == -1)
        {
            fprintf (stderr, "Erreur: ", SDL_GetError ());
            exit (EXIT_FAILURE);
        }
        while (continuer)
        {
            SDL_WaitEvent (&event);
            switch (event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
                case SDL_KEYDOWN:
                    switch (event.key.keysym.sym)
                    {
                        case SDLK_UP:
                            positionPhoto->y--;
                            break;
                        case SDLK_DOWN:
                            positionPhoto->y++;
                            break;
                        case SDLK_RIGHT:
                            positionPhoto->x++;
                            break;
                        case SDLK_LEFT:
                            positionPhoto->x--;
                            break;
                        default:
                            break;
                    }
                    break;
                default:
                    break;
            }
            if (SDL_FillRect (ecran, NULL, SDL_MapRGB (ecran->format, 255, 255, 255)) == -1)
            {
                fprintf (stderr, "Erreur: ", SDL_GetError ());
                exit (EXIT_FAILURE);
            }
            if (SDL_BlitSurface (photo, NULL, ecran, positionPhoto) == -1)
            {
                fprintf (stderr, "Erreur: ", SDL_GetError ());
                exit (EXIT_FAILURE);
            }
            if (SDL_Flip (ecran) == -1)
            {
                fprintf (stderr, "Erreur: ", SDL_GetError ());
                exit (EXIT_FAILURE);
            }
        }
     
        return ;
    }
    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Par défaut
    Salut,

    Il te met des warnings car tu n a pas de comportement defini pour toutes les valeurs de l enumeration. Mais normalement tu geres ces cas avec le default vide. Donc il ne devrait pas te mettre les warnings. Ca a l air d etre un bug du compilo. C est quoi que tu utilises ?

    Peut etre peut tu changer le niveau de warning ou alors remplacer tes switchs par des if/else
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  3. #3
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Salut,

    Je ne comprend pas ton probleme.
    Tu n'as que des warning (ce qui est normal ) et non des error.

    Si les warning te gêne, change les options afin que celle-ci n'apparaisse plus.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Par défaut
    Citation Envoyé par SofEvans Voir le message
    Tu n'as que des warning (ce qui est normal ) et non des error.
    Les warnings ne sont pas forcément normaux. C est quand meme mieux d essayer d en avoir le moins possible. Et ceux que tu laisses, de bien comprendre pourquoi il y sont la.

    La en l occurence, ca me parait clairement etre un bug du compilo. Ce nest pas normal qu il te sorte ca avec un default vide dans le switch (en tout cas je n ai jamais eu ce genre de warnings). Il semble vouloir que tu specifie toute les valeurs de l enum même sans traitement.
    SPARK
    Moteur de particule C++ opensource avec modules de rendu OpenGL, Irrlicht et SFML

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 327
    Par défaut
    C'est ce que j'arrête pas de me demander... Toutes les constantes de touches pour la SDL sont dans une énumération et donc il faut prévoir TOUT les cas, c'est bien ce que j'ai fait avec de default vide pourtant Mais de la à dire que c'est gcc qui bugue je sais pas trop quand même

    Puis pour ce qui est des warnings le but du jeu c'est quand même de pas en avoir même si c'est parfois des choses qui ne sont pas importantes si ils sont la c'est pas pour rien...

  6. #6
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Oups, désolé, je me suis mal exprimé ...

    En fait, j'ai rarement des warning sérieux.
    Les seul warning que j'ai obtenue sont ceux décrit précédemment. (ou du genre variables inutilisé )
    Du coup, je n'y prête plus attention.

    J'ai déjà essayer de m'en débarrasser mais sans succès.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/09/2007, 16h53
  2. [SDL] Problème de vitesse
    Par Hybrix dans le forum Développement 2D, 3D et Jeux
    Réponses: 26
    Dernier message: 06/01/2007, 22h31
  3. [SDL] problème de débogage sdl_ttf
    Par mouteb dans le forum SDL
    Réponses: 4
    Dernier message: 08/09/2006, 17h06
  4. [SDL] Problème avec SDL_Flip()
    Par Drannor dans le forum C
    Réponses: 6
    Dernier message: 24/11/2005, 22h26
  5. Problème évènements clavier
    Par julie20 dans le forum Langage
    Réponses: 3
    Dernier message: 24/09/2003, 12h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo