Partage
  • Partager sur Facebook
  • Partager sur Twitter

Clique sur image

Sujet résolu
    10 août 2006 à 15:37:44

    Bonjour,

    Je voudrai savoir comment cliquer sur une image et ensuite permettre d'arrêter le programme ou de faire appel à une fonction.

       
    int main(int argc, char *argv[]) {
        SDL_Surface *ecran = NULL, *imageDeFond = NULL, *play = NULL;
        SDL_Rect positionFond, positionPlay;
        SDL_Event event;
        int continuer = 1;

        //Position
        positionFond.x = 0;
        positionFond.y = 0;
        positionPlay.x = 350;
        positionPlay.y = 300;

        SDL_Init(SDL_INIT_VIDEO);
        TTF_Init();

        SDL_WM_SetIcon(SDL_LoadBMP("sdl_icone.bmp"), NULL);

        ecran = SDL_SetVideoMode(LARGEUR_FENETRE, HAUTEUR_FENETRE, 32, SDL_HWSURFACE);
        SDL_WM_SetCaption("exemple", NULL);

        //Image de Fond et menu
        imageDeFond = IMG_Load("menu.jpg");
        SDL_BlitSurface(imageDeFond, NULL, ecran, &positionFond);
        play = IMG_Load("play.png");
        SDL_SetColorKey(play, SDL_SRCCOLORKEY, SDL_MapRGB(play->format, 255, 255, 255));
        SDL_BlitSurface(play, NULL, ecran, &positionPlay);
        SDL_Flip(ecran);
    while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
                case SDL_MOUSEBUTTONUP: /* Clic de la souris */
                    if (event.button.button == SDL_BUTTON_RIGHT)
                    if (event.button == positionPlay)
    //EXEMPLE (Sa ne marche pas mais comment faire une verification des coordonner de la souris pour savoir si l'utilisateur à cliquer sur l'image play?)
                    play();
                    break;
            }
        }
        SDL_FreeSurface(imageDeFond);
        SDL_FreeSurface(play);
        SDL_Quit();

        return EXIT_SUCCESS;


    merci pour tous aide apporter.
    • Partager sur Facebook
    • Partager sur Twitter
      10 août 2006 à 15:45:24

      Voici:
      case SDL_MOUSEBUTTONUP:
         if (event.button.button == SDL_BUTTON_LEFT) {
            if (event.button.x > x1 && event.button.x < x2 && event.button.y > y1 && event.button.y < y2){
               //Ta fonction
             }
         }
      break;



      x1,y1_____________
           | image      |
           |____________|
                         x2,y2
      • Partager sur Facebook
      • Partager sur Twitter
        10 août 2006 à 15:51:22

        Merci apres une longue etude de ta réponse.
        J'ai reussi à me debrouillez encore merci.

                        case SDL_MOUSEBUTTONUP:
                            if (event.button.button == SDL_BUTTON_LEFT) {
                            if (event.button.x > positionExit.x && event.button.y > positionExit.y){
                            return 0;
        }


        J'ai remarquer une erreur sur le resultat du haut en fait il vos recree 2 autre position

            SDL_Rect positionExit, positionExit2;

            positionExit.x = 350;
            positionExit.y = 420;
            positionExit2.x = 450;//350+la largeur de l'image
            positionExit2.y = 460;//420+la hauteur de l'image

                            if (event.button.button == SDL_BUTTON_LEFT) {
                            if (event.button.x > positionExit.x && event.button.x < positionExit2.x && event.button.y > positionExit.y && event.button.y < positionExit2.y)
                            return 0;
        • Partager sur Facebook
        • Partager sur Twitter
          10 août 2006 à 16:08:18

          Mets ton sujet résolu alors
          • Partager sur Facebook
          • Partager sur Twitter

          Clique sur image

          × 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