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 :

Petage de cable (Code::Block)


Sujet :

SDL

  1. #41
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    dans ta fonction init, tu céclares un SDL_Event :
    mais si tu ne récupères pas les coordonnées de la souris le event.x contient une information indéterminée
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  2. #42
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    je serais donc oblige de la stocker dans une variable ? il n'y aurais pas une autre solution ?

  3. #43
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    int i;
    SDL_Rect positionCurseur;
    positionCurseur.x = event.motion.x;
    positionCurseur.y = event.motion.y;

    for (i=0 ; i<8; i++)
    {
    positionCurseur.x = event.motion.x;
    positionCurseur.y = event.motion.y;

    if(Menu:etection_Item(positionCurseur.x, positionCurseur.y, Proprietes_Item_Menu[i]))
    {
    menu[i] = TTF_RenderText_Blended(Font_menu, "Libelle_Menu[i]", Color_menu_over);
    }
    else
    menu[i] = TTF_RenderText_Blended(Font_menu, "Libelle_Menu[i]", Color_menu);

    Proprietes_Item_Menu[i].h = menu[i]->w;
    Proprietes_Item_Menu[i].w = menu[i]->h;
    Proprietes_Item_Menu[i].x = (LargeurEcran/2);
    Proprietes_Item_Menu[i].y = (HauteurEcran/9)*(i+1);
    }

    return true;
    }
    Ca ne marche pas non plus.

  4. #44
    Expert éminent sénior

    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 : 43
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Il y a deux solutions possibles :

    - A chaque affichage, tu vérifies la position de la souris et tu décides entre les images des boutons possibles.

    - Lors du mouvement de la souris tu mets à jour les états des boutons.

    Ta solution n'a aucun sens puisque tu ne prends pas en compte la position courante de la souris.

    Jc

  5. #45
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    a bon, je voyais les choses comme cela:
    A chaque fois que je veux afficher un item, je recupere la position de la souris et verifie si elle se place bien dans celui-ci.

  6. #46
    Expert éminent sénior

    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 : 43
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par kirua_sama
    a bon, je voyais les choses comme cela:
    A chaque fois que je veux afficher un item, je recupere la position de la souris et verifie si elle se place bien dans celui-ci.
    C'est donc la première solution que je propose.

    Par contre, dans ton code, c'est pas du tout ce que tu fais puisque tu récupéres la position de la souris que pendant l'initialisation du menu.

    Jc

  7. #47
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    je n'ai vu nul part dans le code que la position de la souris était récupérée

    il y a une fonction SDL qui sert à récupérer les coordonnées de la souris : SDL_GetMouseState
    http://www.libsdl.org/cgi/docwiki.cg...fGetMouseState

    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
    int i, mouseX, mouseY;
    SDL_GetMouseState(&mouseX, &mouseY);
     
    for (i=0 ; i<8; i++)
    {
    if(Menu:etection_Item(mouseX, mouseY, Proprietes_Item_Menu[i]))
    {
    menu[i] = TTF_RenderText_Blended(Font_menu, "Libelle_Menu[i]", Color_menu_over);
    }
    else
    menu[i] = TTF_RenderText_Blended(Font_menu, "Libelle_Menu[i]", Color_menu);
     
    Proprietes_Item_Menu[i].h = menu[i]->w;
    Proprietes_Item_Menu[i].w = menu[i]->h;
    Proprietes_Item_Menu[i].x = (LargeurEcran/2);
    Proprietes_Item_Menu[i].y = (HauteurEcran/9)*(i+1);
    }
     
    return true;
    }
    parceque ce que tu ne sembles pas comprendre c'est qu'en faisant
    ton event contient la même chose que i dans le cas suivant :
    c'est à dire une valeur inconnue
    je ne sais pas comment te l'expliquer autrement mais ta façon d'utiliser event c'est comme si tu faisais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int i;
    if(i == 3)
       FaireUnTruc();
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  8. #48
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    aussi une autre chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TTF_RenderText_Blended(Font_menu, "Libelle_Menu[i]", ...
    Libelle_Menu[i] ne devrait pas être entre parenthèses
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  9. #49
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    D'accord merci, je vais essayer vos solution je croyais que en fesant Event,
    et PositionCurseur.x = event.motion.x ca marchais, désolé...

    Sinon pour le libelle menu: je l'ai mis entre guillement parce que ca me fait bugger mon programme lorsque je passe directement Libelle_Menu[i]. Merci encore, je vous tiens au courant.

  10. #50
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Ca fonctionne !! Merci beaucoup ^^ depuis le temps que ca me saoule... ^^ j'ai du apprendre la SDL sur des mauvais Tutos ... ou c'est ptete juste moi qui ai pas asser approfondi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. [Débutant] Compiler glu.h sous Code::Blocks
    Par allanp8 dans le forum OpenGL
    Réponses: 10
    Dernier message: 18/11/2007, 00h56
  2. Code blocks ajouter un .lib
    Par gl0be dans le forum Code::Blocks
    Réponses: 7
    Dernier message: 09/09/2006, 15h04
  3. [Code::Block] Traduction francaise?
    Par Zenol dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 20/02/2006, 16h06
  4. [code::blocks] Completion de code
    Par anykeyh dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 20/12/2005, 16h53

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