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 :

Event click sur une surface


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Par défaut Event click sur une surface
    Bonjour à tous je travail sur un projet SDL qui consiste à créer un arbre de décision suivant un fichier XML jusque là pas de problème.
    Les noeuds de mon arbre sont des images dont les coordonées (x,y) sont stocké dans un tableau d'entier et chaque image et associé à une chaine de caractère qui et aussi stocké dans un tableau de chaine de caractère.
    Je souhaiterais pouvoir clické sur chaque image via la fonction sdl_event et que celle ci m'affiche la chaine de caractère correspondante. J'ai réussi à faire une fonction qui me donne un résultat satisfesant mais le problème c'est que je voudrais que ce soit codé dynamiquement contrairement à ceci
    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
    void contenu_conclusion () {
    SDL_Event event;
    int size = 20;
    int i = 0;
    int continuer = 1;
    while (continuer)
        {
           SDL_WaitEvent(&event);
            switch(event.type)
            {
     
                case SDL_MOUSEBUTTONUP:
                efface(x= 720,y =300);
     
                    if ( event.button.x>tab_x_c[0] && event.button.x<tab_x_c[0]+size && event.button.y>tab_y_c[0] && event.button.y<tab_y_c[0]+size)
     
                        txt(x = 720,y = 300,description_conclusion[0]);
     
                    if ( event.button.x>tab_x_c[1] && event.button.x<tab_x_c[1]+size && event.button.y>tab_y_c[1] && event.button.y<tab_y_c[1]+size)
     
                        txt(x = 720,y = 300,description_conclusion[1]);
     
                    if ( event.button.x>tab_x_c[2] && event.button.x<tab_x_c[2]+size && event.button.y>tab_y_c[2] && event.button.y<tab_y_c[2]+size)
     
                        txt(x = 720,y = 300,description_conclusion[2]);
     break;
     
     
            }
     
     
     
       SDL_Flip(ecran);
     
       }
     
    }
    A savoir que je risque d'avoir plus d'une vingtaine d'image pour mon arbre.
    Je vous remercie d'avance

  2. #2
    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
    Bonjour,

    Je te conseille de lire ce sujet, il devrait normalement repondre a ta question :

    http://www.developpez.net/forums/d83...cliquer-image/


    Bonne continuation.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Par défaut
    ok je te remercie je vais faire quelque test. Juste en regadant le code que tu as posté je comprend bien comment on defini si le bouton à bien était clické mais par contre comment affiché les valeur ( chaine de caractere stocké dans un tableau ) des images.

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par bakman Voir le message
    ok je te remercie je vais faire quelque test. Juste en regadant le code que tu as posté je comprend bien comment on defini si le bouton à bien était clické mais par contre comment affiché les valeur ( chaine de caractere stocké dans un tableau ) des images.
    Que veux-tu dire ? T'avais une fonction txt dans ton code initial, fonctionne-t-elle?
    Jc

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 270
    Par défaut
    oui la fonction txt me permet d'utiliser SDL_TTF les attributs de cette fonction sont
    txt (int x,int y, char chaine[])

    D'ailleur le code que j'ai posté fonctionne mon probleme et juste de codé tout ça dynamiquement.

    résumé de mon programme :
    je parse un fichier XML quand je trouve le noeud "premisse" j'affiche une image j'enregistre ces coordonée dans un tableau d'entier ainsi que la chaine de caractere correspondante dans un autre tableau premisse.
    A savoir qu'il y a plusieur noeud "premisse" dans mon fichier XML donc si j'ai 4 "premisse" je vais donc avoir quatre image possedant la meme valeur des y mais avec une incremantation des x.
    Si lors du parsage du fichier XML je tombe sur un noeud "conclusion" alors j'affiche une image differente j'enregistre ses coordoné x et y ainsi que ca valeur dans un tableau de chaines de caractere spécifique aux conclusion.
    L'image de la conclusion et placé sous les images des premisses et elle est relié par des lignes aux premisse de facon a formé un arbre. Si j'enregistre les coordoné des premisse et des conclusion c'est avant tout pour pouvoir les relier entre eux. mon arbre aux final a plusieurs niveau il et composé de premisse et de conclusion et la derniere feuille de l'arbre et éidament la conclusion finale. le but du code posté est d'avoir la possibilité de clické sur chacun des noeuds de l'arbre et qu'il en retourne la chaine de caractere correspondante.
    le code ci-dessous n'est valide que pour les conclusions j'ai du faire le meme pour les noeud prémisse
    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
    int continuer = 1;
    while (continuer)
        {
           SDL_WaitEvent(&event);
            switch(event.type)
            {
     
                case SDL_MOUSEBUTTONUP:
                efface(x= 720,y =300);
     
                    if ( event.button.x>tab_x_c[0] && event.button.x<tab_x_c[0]+size && event.button.y>tab_y_c[0] && event.button.y<tab_y_c[0]+size)
     
                        txt(x = 720,y = 300,description_conclusion[0]);
     
                    if ( event.button.x>tab_x_c[1] && event.button.x<tab_x_c[1]+size && event.button.y>tab_y_c[1] && event.button.y<tab_y_c[1]+size)
     
                        txt(x = 720,y = 300,description_conclusion[1]);
     
                    if ( event.button.x>tab_x_c[2] && event.button.x<tab_x_c[2]+size && event.button.y>tab_y_c[2] && event.button.y<tab_y_c[2]+size)
     
                        txt(x = 720,y = 300,description_conclusion[2]);
     break;
    Voilou la je pense avoir bien détailé.

  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
    Je vois plus ou moins ce que tu veux faire.

    Si on reprend ce que j'avais dit dans le lien du premier message :

    La structure te permet de creer des image "clickable" (et je dit bien des images).

    Si tu veux que lorque l'on clique sur une image la fonction

    txt(int x, int y, char *texte);

    se declenche, alors il faut faire ceci :

    * Rajouter un champ "char *texte" dans la structure
    * Modifier la fonction "CreerBouton" afin que celle ci initialise la chaine "texte"
    * Modifier la fonction "Check" : elle decleche la fonction txt avec en parametre les attribut de la structure

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Intercepter un event non géré par un on(dbl)click sur une ancre
    Par Invité dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/06/2010, 20h42
  2. [NET4.0] Binding event lors du click sur une Image
    Par aram2 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 08/06/2010, 09h19
  3. Réponses: 13
    Dernier message: 12/07/2005, 10h14
  4. [VMR9][D3D9]ecrire un texte sur une surface
    Par drizztfr dans le forum DirectX
    Réponses: 2
    Dernier message: 13/11/2003, 15h06
  5. Effet Fade In / Fade Out sur une surface DirectDraw
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 08/09/2002, 17h37

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