Partage
  • Partager sur Facebook
  • Partager sur Twitter

cliquer dans une zone precise en SDL

    8 octobre 2006 à 16:19:40

    Bonjour j'aimerai bien savoir si il est possible et comment faire pour cliquer
    dans une zone precise en SDL.
    exemple : pour cliquer sur une touche de calculatrice.
    merci d'avance ;)
    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2006 à 16:28:22

      Tiens c'est mon POST lui lol bref

      Pour cliquer dans une zone précise de la SDL, il faut déjà avoir lu le cours de Matéo.
      Bon allez sinon il y a ça :
      SDL_WarpMouse(pixel.x,pixel.y );
      • Partager sur Facebook
      • Partager sur Twitter
        8 octobre 2006 à 16:29:28

        desolé j'ai oublier un detail :p , moi je suis en C pas en C++ .
        est-ce que c'est la meme chose :euh: ????????
        • Partager sur Facebook
        • Partager sur Twitter
          8 octobre 2006 à 16:33:38

          Citation : Conficius

          Tiens c'est mon POST lui lol bref

          Pour cliquer dans une zone précise de la SDL, il faut déjà avoir lu le cours de Matéo.
          Bon allez sinon il y a ça :

          SDL_WarpMouse(pixel.x,pixel.y );

          SDL_WarpMouse c'est pas pour placer la souris ou on veut sa ? o_O

          Sinon wissam42 le lien que je t'ai donner c'est bien en C.
          • Partager sur Facebook
          • Partager sur Twitter
            8 octobre 2006 à 16:36:38

            SDL_WarpMouse, il me semble que c'est pour placer dans un endroit précis.
            • Partager sur Facebook
            • Partager sur Twitter
              8 octobre 2006 à 16:42:34

              Oui mais la il demande pas de placer la souris dans un endroit précis mais de savoir si la souris EST dans un endroit précis!
              • Partager sur Facebook
              • Partager sur Twitter
                8 octobre 2006 à 16:46:33

                Citation : wissam42

                Bonjour j'aimerai bien savoir si il est possible et comment faire pour cliquer
                dans une zone precise en SDL.
                exemple : pour cliquer sur une touche de calculatrice.
                merci d'avance ;)




                Non je ne pense pas, ici il demande la méthode POUR CLIQUER dans un endroit précis et non de savoir.
                • Partager sur Facebook
                • Partager sur Twitter
                  8 octobre 2006 à 16:47:47

                  Pour faire ça, je prends un carré par exemple :
                  if(event.button.x > 49 && event.button.x > 101 && event.button.y > 49 && event.button.y < 101)
                  // CODE ...


                  Ici, sio on clique dans le carré (50;50) de 50 pixels de côté, le code se déclenche.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 octobre 2006 à 16:52:02

                    wissam42 : tu veux placer la souris sur le bouton ou savoir si la souris est placé sur le bouton ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 octobre 2006 à 16:55:27

                      IL veut placer la souris sur le bouton, enfin c'est ce que j'ai compris... sinon il s'exprime mal
                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 octobre 2006 à 16:57:20

                        oui je veut placer la souris sur le bouton et si on clique ca fait quelque chose.desoléé si je me suis mal exprimé :euh:
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 octobre 2006 à 17:00:18

                          Citation : Conficius


                          SDL_WarpMouse(pixel.x,pixel.y );


                          Dans ce cas ...
                          et ensuite on rajoute
                          if(event.type == SDL_MOUSEBUTTON/*(UP/DOWN)*/)
                          // CODE ...
                          • Partager sur Facebook
                          • Partager sur Twitter
                            8 octobre 2006 à 17:02:40

                            J'avais donc raison.
                            Si tu veux placer la souris dans un endroit précis utilise SDL_WarpMouse.
                            Et après si tu veux MAINTENANT savoir si il a cliquer là, là tu utilise ce qu'à dit Sylicate.

                            Il faut que tu vérifie que le clique de la soursi est bien comprit dans les coordonnée de ta zone avec inférieur et supérieure, < >.
                            Tu peux raisonner comme ci -dessous :

                            Si l'abscisse x du clique de la souris est supérieure à 20 et inférieure à 40 et son ordonné est supérieure à 56 et inférieure à 78 alors on exécute les instructions.
                            Tu utilise une boucle infini avec SDL_Event, pour attendre un événement. TU utilise MOUSEBUTTON
                            • Partager sur Facebook
                            • Partager sur Twitter
                              8 octobre 2006 à 17:05:46

                              C'était donc un mélange des deux réponses :p
                              • Partager sur Facebook
                              • Partager sur Twitter
                                8 octobre 2006 à 17:07:07

                                Au début il ne l'avait pas préciser.

                                PS : je n'essaye pas d'avoir raison
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  8 octobre 2006 à 17:13:46

                                  Lol pas de pb Conficius ;) !
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    9 octobre 2006 à 19:29:05

                                    et donc pour cliquer dans une zone precise je verifie si la souris et dans la zone et ensuite je met que si il clique sa fait l'action.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      9 octobre 2006 à 19:34:58

                                      Préfére faire l'inverse au cas où il y ait plusieurs surfaces différentes.

                                      if(event.type == SDL_MOUSEBUTTON/*(UP/DOWN)*/)
                                      {
                                         if(event.button.x < 45 && ...)
                                            /* ... */
                                         if( ... )
                                      // CODE ...
                                      }
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        9 octobre 2006 à 19:38:19

                                        et ca

                                          if(event.button.x < 45 && ...)
                                              /* ... */
                                           if( ... )
                                        // CODE ...

                                        c'est pour verifiersi elle est dedans la zone
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          9 octobre 2006 à 19:39:25

                                          SI c'est une question la réponse est oui.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            9 octobre 2006 à 19:51:50

                                            Citation : wissam42

                                            et ca


                                              if(event.button.x < 45 && ...)
                                                  /* ... */
                                               if( ... )
                                            // CODE ...


                                            c'est pour verifiersi elle est dedans la zone



                                            Oui mais bien sur, les "..." faut les remplacés ^^. Tu fais comme j'ai (ou Conficius ...) précisé plus haut.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              9 octobre 2006 à 20:08:40

                                              et le deuxieme if , il sert a quoi
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                9 octobre 2006 à 20:12:26

                                                Tu n'auras pas toujours qu'une seule surface cliquable à faire. Dans le cadre d'une calculette par exemple, il faut au moins 14 surface. Dans ce cas tu enchaînes 14 if ... (impossible en switch je pense) :

                                                if(...)
                                                // Touche 1
                                                if (...)
                                                // Touche 0
                                                //... (etc.)

                                                Bien sut si tu n'en met qu'un le code fonctionne très bien.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  10 octobre 2006 à 20:15:48

                                                  excuser moi mais j'ai rencontrer un probleme je sais comment verifier si la souris est dans la zone mais le probleme c'est que je sait pas comment je choise la zone a delimiter
                                                  dans ca :
                                                  if(event.button.x > 65 && event.button.x > 86 && event.button.y > 69 && event.button.y < 81)

                                                  c'est ou la delimitation de la zone????? :(
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    10 octobre 2006 à 20:25:51

                                                    Dans ton code la c'est entre 65 et 86 pixel en lageur et 69 et 81 pixel en hauteur !
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      10 octobre 2006 à 20:27:55

                                                      Essaye de lire ton code comme ci-dessous :

                                                      Si position de la souris est dans une zone dont la largeur est plus grande que 65 et plus petit de 86 et dans une zone dont la hauteur est plus grande que 69 et plus petite que 81
                                                      alors...
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        10 octobre 2006 à 20:37:22

                                                        mais ca ca me delimite la taille de la zone , pas sa postion
                                                        et si vous avez paint lequel c'est la position x et le lequel y
                                                        ens bas a droites on a deux chiffre separé d'une virgule.
                                                        ex : 196,62
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          11 octobre 2006 à 7:18:58

                                                          Citation : wissam42

                                                          mais ca ca me delimite la taille de la zone , pas sa postion
                                                          et si vous avez paint lequel c'est la position x et le lequel y
                                                          ens bas a droites on a deux chiffre separé d'une virgule.
                                                          ex : 196,62



                                                          Les deux chiffres sont séparés par un ";" (normalement).
                                                          "x;y"
                                                          x : l'abscisse
                                                          y : l'ordonnée

                                                          Dans ton exemple
                                                          x = 196
                                                          y = 62


                                                          Et si, ça délimite la postion de la surface, ainsi que sa taille, si tu fais la différence.

                                                          Si surface est positionnée :

                                                          - En 65;69 ...

                                                          - plus grand que 65 en x
                                                          - plus petit que 86 en x
                                                          - plus grand que 69 en y
                                                          - plus petit que 81 en y

                                                          Sa taille est de 21;12

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter

                                                          cliquer dans une zone precise en 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