Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petit Probleme SDL

Console s'affiche et SDL_PushEvent

    1 juin 2008 à 18:59:31

    Bonjour,

    Je fais un petit programme SDL et C++ .
    Et quand je compile (code::blocks 8.02) , ma fenetre SDL affiche bien ce que je veux .
    Mais derriere , il y a une deuxieme fenetre plus petite en console et j'arrive pas a m'en débarrassé . o_O
    J'encombre pas avec le code source , je pense que ca se passe dans Project->Build option , ou quelque chose n'est pas fait correctement .

    Et d'autre part , a quoi sert SDL_PushEvent par rapport à SDL_WaitEvent(qui attend l'evenement)et SDL_PollEvent(Qui continue le programme)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      1 juin 2008 à 19:09:36

      Pour éviter d'afficher la console :

      Project >> Properties >> Build Targets >> Dans la liste déroulante Type, remplace "Console application" par "GUI application".

      SDL_PushEvent te sert à insérer tes événements. Par exemple : une classe récupère un événement grâce à SDL_WaitEvent ou SDL_PollEvent et se rend compte que cet événement ne lui sert à rien ; mais comme il pourrait servir à une autre classe, autant le réinjecter dans la pile d'événements avec SDL_PushEvent (ce n'est qu'un exemple bien sûr ^^ ).
      Tu peux aussi injecter des événements personnalisés grâce à cette fonction.
      • Partager sur Facebook
      • Partager sur Twitter
        1 juin 2008 à 19:25:06

        Merci pour cette reponse rapide,
        ma console ne s'affiche plus .
        Pour SDL_PushEvent , je ne suis pas sur d'avoir compris , je commence seulement a programmer dans la gestion des evenements .
        Donc je vais m'entrainer encore un peu .
        Pour moi , le programme ne peut attendre qu'un seul evenement et tu sembles dire que plusieurs evenement peuvent etre en attente .
        Par exemple , on crée event_principal qui attendrait SDL_QUIT,
        et event_mouse qui attendrait un evenement souris ?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          1 juin 2008 à 19:39:19

          En fait, en SDL, les événements sont gérés sous forme d'une file (au sens informatique du terme).

          A chaque mouvement de souris, à chaque clic, à chaque appui de touche, un événement est rajouté dans cette file et attend d'être récupéré, soit par SDL_WaitEvent, soit par SDL_PollEvent.

          Tu peux faire l'essai : fais une pause de quelques secondes dans ton programme, appuie sur différentes touches auxquelles tu auras associées des événements, et en théorie, après la pause, tous tes appuis de touche seront traités, dans l'ordre.

          Par contre, je n'ai pas compris tes 3 dernières lignes, donc je m'arrête là pour le moment :-° .

          En espérant avoir pu t'aider, malgré mon manque de qualités pédagogiques :D .
          • Partager sur Facebook
          • Partager sur Twitter
            1 juin 2008 à 19:56:43

            C'est bon , j'ai compris .
            Mon exemple n'avait rien a voir , j'etait hors sujet .
            Merci de la reponse .
            • Partager sur Facebook
            • Partager sur Twitter

            Petit Probleme SDL

            × 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