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 :

difficulter avec SDL_MOUSEMOTION


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut difficulter avec SDL_MOUSEMOTION
    bonsoir !
    le projet est un objet sur un arriere plan et quand on attrape l objet avec la sourie et on bouge la sourie l objet bouge avec ici TVB mais avec 2 objet le mouvement est incorecte .
    le projet est une classe d'objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Objet{     //  La classe Objet
        private:
            int frame;
            int xVel, yVel;
            SDL_Rect box;        
            SDL_Rect* clip;        
        public:
            Objet( int x, int y );
            void sourie();
            void montrer(); 
    };
    pour la fonction sourie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void Object::sourie(){
        if( event.type ==SDL_MOUSEMOTION){
            if( event.button.button == SDL_BUTTON_LEFT){
                box.x=event.motion.x-35;
                box.y=event.motion.y-35;
            }
        }
     }
    fonction montrer() est simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void Objet::montrer(){
        apply_surface( box.x, box.y, objet, ecran, clip );
    }
    fonction main()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int main( int argc, char* args[] ){
    ...
    Objet objet1(x1,y1),objet2(x2,y2);
    ...
    objet1.sourie();
    objet2.sourie();
    objet1.montrer();
    objet2.montrer();
    ...
    }
    quand un seul objet est declarer (objet1) TVB mais quand c est 2 (objet1 , objet2) TV mal ,quelqu un pour aider un debutant SVP ?

  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
    Salut,

    bonsoir !
    le projet est un objet sur un arriere plan et quand on attrape l objet avec la sourie et on bouge la sourie l objet bouge avec ici TVB mais avec 2 objet le mouvement est incorecte .
    le projet est une classe d'objet .

    quand un seul objet est declarer (objet1) TVB mais quand c est 2 (objet1 , objet2) TV mal ,quelqu un pour aider un debutant SVP ?
    Désolé, cette explication est pour moi absolument indigeste
    Je veux bien t'aider, mais je ne veux pas passer trois heures a déchiffrer et comprendre l'origine de ton probleme.
    Alors, s'il te plait, met de la ponctuation dans tes phrase, sinon elles perdent leur sens.

    Décris nous mieux ton probleme. tu dis que le mouvement est incorrecte, daccord. Mais ca veut dire ? Le mouvement gauche/droite est inverse ? L'objet sélectionner n'est pas le bon ? Tout les objet semble sélectionner ?

    Ré-explique proprement ton probleme, ta logique de code et j'essayerai de t'aider.
    as tu fait des test pour determiner l'origine du probleme ? Le compilateur t'envoi-t'il de warning ? si oui, lesquels ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    Citation Envoyé par SofEvans Voir le message
    Salut,



    Désolé, cette explication est pour moi absolument indigeste
    Je veux bien t'aider, mais je ne veux pas passer trois heures a déchiffrer et comprendre l'origine de ton probleme.
    Alors, s'il te plait, met de la ponctuation dans tes phrase, sinon elles perdent leur sens.

    Décris nous mieux ton probleme. tu dis que le mouvement est incorrecte, daccord. Mais ca veut dire ? Le mouvement gauche/droite est inverse ? L'objet sélectionner n'est pas le bon ? Tout les objet semble sélectionner ?

    Ré-explique proprement ton probleme, ta logique de code et j'essayerai de t'aider.
    as tu fait des test pour determiner l'origine du probleme ? Le compilateur t'envoi-t'il de warning ? si oui, lesquels ?
    Suppose une petite image affichée sur un arièrre plan je clik avec la sourie sur cette image je deplace la sourie l image se deplace TVB .
    maintenant 2 petites images affichée sur un arrière plan je clik sur img1 et je la deplace de (img1.x0,img1.y0) vers (img1.x1,img1.y1) je la laise sur cette position et je vais pour deplacé img2 de (img2.x0,img2.y) vers une autre position je clik la sourie qui se trouve maintenant sur (img2.x0,img2.y0) alors img1 se deplace vers position (img2.x0,img2.y0) daprés la definition de la fonction sourie() je trouve ça logique .
    Comment faire pour deplacer les 2 images independament merci ?

  4. #4
    Membre averti
    Profil pro
    Développeur Javascript
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Javascript

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Par défaut
    Citation Envoyé par aliwatte Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Objet{     //  La classe Objet
        private:
            int frame;
            int xVel, yVel;
            SDL_Rect box;        
            SDL_Rect* clip;        
        public:
            Objet( int x, int y );
            void sourie();
            void montrer(); 
    };
    pour la fonction sourie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void Object::sourie(){
        if( event.type ==SDL_MOUSEMOTION){
            if( event.button.button == SDL_BUTTON_LEFT){
                box.x=event.motion.x-35;
                box.y=event.motion.y-35;
            }
        }
     }
    Ca m'étonne que ca compile, tu définis la fonction sourie() sur Object et pas Objet

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    Citation Envoyé par Razyon Voir le message
    Ca m'étonne que ca compile, tu définis la fonction sourie() sur Object et pas Objet
    ça compile bien croix moi mais si tu pense autrement fais moi profité de ce que tu pense peut etre c'est là ou se trouve la solution que je cherche merci .

  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

    Ta as un probleme algorithmique.
    Tu veux mettre une image (situé sur ton ecran) sur ton curseur lorsque celui est selectionner par un clique de l'utilisateur.

    Je vois bien ta fonction de suivi (Objet::sourie()), je vois aussi ta fonction d'affichage (void Objet::montrer()), mais je ne vois aucune fonction de selection.

    Il faut que tu fasse une fonction de selection, qui appelera ta fonction de suivi.
    Ou alors, tu mets un booleen "selectionner" dans ton objet. Tu appele la fonction de suivi qui,si selectionner == true, execute le code.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Par défaut
    tu veut dire quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    bool selectionner = true;
    void Objet::suivie(){
     if(selectionner ){
       box.x=event.motion.x;
       box.y=event.motion.y;
      }
        apply_surface( box.x, box.y, objet, ecran, clip );
    }
    et dans le main()

  8. #8
    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
    Exactement.
    Il ne te reste plus qu'a faire une fonction membre qui te permette de savoir si oui ou non, tu as sélectionner l'objet. Cette fonction met selectionner a false ou true

Discussions similaires

  1. [SSIS][2k5]Difficulté avec SSIS
    Par david71 dans le forum SSIS
    Réponses: 9
    Dernier message: 05/01/2006, 19h28
  2. [JS] Difficulté avec le onmouseover...
    Par Pleymo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/11/2005, 12h09
  3. [VBA] difficultés avec une requête INSERT
    Par elias dans le forum Access
    Réponses: 7
    Dernier message: 06/09/2005, 14h53
  4. Difficultés avec - onchange - !
    Par zakuli dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 20/07/2005, 12h00
  5. Difficultés avec TMenuItem.OnDrawItem
    Par ybruant dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/01/2005, 11h07

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