Partage
  • Partager sur Facebook
  • Partager sur Twitter

SDL et condition

    4 décembre 2006 à 21:33:51

    Bonjour ainsi je me suis mis a la sdl c'est vraiment géniale je tient a le préciser.
    Voila mon probleme est le suivant j'aimerais coder la phrase suivante:
    "si je fait un clique gauche sur l'image(image de zozor celle qui est livrée dans les cours) alors afficher bonjour"?
    Et comment passer d'une fenetre a une autre par exemple apres qu'on ait appuyé sur entrée?
    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      4 décembre 2006 à 21:39:28

      Il faut utiliser la library SDL_TTF pour écrire dans une fenêtre en SDL.
      • Partager sur Facebook
      • Partager sur Twitter
        4 décembre 2006 à 21:51:50

        merci ca je sait mais c'est surtout pour le if qu'est ce que je met comme proposition logique?
        • Partager sur Facebook
        • Partager sur Twitter
          4 décembre 2006 à 21:55:58

          Tu commences par intercepter tous les clics gauche, ensuite tu regardes si le clic à eu lieu dans le rectangle délimitant l'image, si c'est le cas tu affiche "bonjour".

          Qu'est ce que tu entends par passer d'une fenêtre à une autre ?
          • Partager sur Facebook
          • Partager sur Twitter
            4 décembre 2006 à 22:21:04

            Ben en fait par passer d'une fenêtre a une autre je voulais plutot dire comment faire pour affiocher a un moment une prèmiere image avec un fond noir et appuyez sur entree par exemple et a un autre moment une autre image avec un fond jaune et le menu d'un jeu par exemple jouer info... .
            • Partager sur Facebook
            • Partager sur Twitter
              4 décembre 2006 à 22:33:43

              Il y a des tas de façon de procéder.

              Une méthode serait d'utiliser un booléen qui te dis dans quel état tu es par exemple.
              S'il vaut VRAI alors afficher l'image 1.
              S'il vaut FAUX alors afficher l'image 2.

              Mais la méthode la plus générale qui te permet d'implémenter les phases classiques d'un jeu (intro, menu, etc...) est la machine à états finis.
              Voici un bon tuto qui explique ça assez bien, mais il faut avoir des notions avancés en C++.
              • Partager sur Facebook
              • Partager sur Twitter
                5 décembre 2006 à 5:38:23

                Bonjour , nul besoin de booleen , par contre je te conseille d'utiliser une fonction plus tard, pour ne pas trop remplir ta boucle principale, quand tu voudra faire plusieurs traitements .


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

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

                    SDL_Surface *ecran = NULL;
                    SDL_Surface *image = NULL; // on cree une nouvelle surface pour l'image
                    SDL_Event event;
                    SDL_Rect Pos;
                    int continuer = 1;

                    Pos.x=200;
                    Pos.y=180;

                    SDL_Init(SDL_INIT_VIDEO);

                    ecran = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE | SDL_DOUBLEBUF);
                    SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 255)); // on remplit l'ecran (le fond) de bleu

                    image = SDL_LoadBMP("1.bmp"); // on charge une image dans ta surface image

                    // gestion des evenements
                    while (continuer)
                    {
                        SDL_WaitEvent(&event);
                        switch(event.type)
                        {
                            case SDL_QUIT:
                            continuer=0;
                            break;
                            case SDL_KEYDOWN:
                                switch (event.key.keysym.sym)
                                {
                                    case SDLK_ESCAPE:
                                    continuer = 0;
                                    break;
                                    case SDLK_RETURN: // quand on appuie sur la touche entree
                                    image = SDL_LoadBMP("2.bmp"); // on remplace l'image
                                    SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 0, 0)); // et on change la couleur du fond
                                    break;
                                }
                            break;

                        }


                        SDL_BlitSurface(image, NULL, ecran, &Pos); // on blitte l'image concrete
                        SDL_Flip(ecran); // on met a jour l'ecran
                    }


                    SDL_FreeSurface(image); // une fois sortie de la boucle on oublie pas de liberer la surface !
                    SDL_Quit();

                    return EXIT_SUCCESS;
                }

                • Partager sur Facebook
                • Partager sur Twitter

                SDL et condition

                × 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