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

XNA/Monogame Discussion :

[XNA] Fonction Clic sur un objet de type button


Sujet :

XNA/Monogame

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut [XNA] Fonction Clic sur un objet de type button
    Bonjour,

    J'ai un soucis avec une méthode d'une de mes classes. Ma méthode Click est la suivant :

    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
    public bool Click(MouseState MState, Button btn)
    {
      bool bRet = false;
        if (MState.LeftButton == ButtonState.Pressed)
        {
            bGeneralClick = true;
            bRet = false;
        }
        if ((MState.X >= btn.Position.X) && (MState.X <= btn.Position.X + btn.Texture.Width) && (MState.Y >= btn.Position.Y) && (MState.Y <= btn.Position.Y + btn.Texture.Height))
        {
            if (MState.LeftButton == ButtonState.Released && bGeneralClick == true)
            {
                bGeneralClick = false;
                bRet = true;
            }
        }
        else
        {
            bGeneralClick = false;
        }
        return bRet;
    }
    Je l'utilise de la façon suivante, ayant au préalable fait les déclarations suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      SingleClick Click;
      Click = new SingleClick();
    dans un switch sur la variable iEtat se trouvant dans l'Update():
    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
    case 1:
        MouseState MStat = Mouse.GetState();
        if (Click.Click(MStat, flecheD))
        {
            iEtat = 2;
        }
        if (Click.Click(MStat, flecheG))
        {
            iEtat = 3;
        }
        if (Click.Click(MStat, symH))
        {
            iEtat = 4;
        }
        if (Click.Click(MStat, symV))
        {
            iEtat = 5;
        }
    break;
    Mon soucis est que j'ai beau cliquer x fois sur le button en question la variable iEtat reste à 1...
    Pourriez vous m'aidez ?

    Merci d'avance

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Up

  3. #3
    Membre habitué
    Inscrit en
    Avril 2011
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 59
    Points : 154
    Points
    154
    Par défaut
    Dans le code que tu donne je ne vois pas d'erreur grossière. Les tests sur les coordonées ont l'air corrects.

    J'ai juste un doute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SingleClick Click;
      Click = new SingleClick();
    Tu cast ton SingleClick en Click tu que tu met pas d'override devant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public bool Click(MouseState MState, Button btn)
    Donc tu passera dans la méthode Click(...) de la classe Click et pas celle de SingleClick. Ca pourrait potentiellement être la source du bug mais sans voir le reste du code, je ne peux que faire des suppositions.

    Par contre quelques remarques à propos du code:
    - tu mélange francais et anglais c'est pas trop terrible pour la lisibilité.
    - je ne comprends pas pourquoi Click(...) n'est pas une méthode de ta classe Button.

Discussions similaires

  1. [XNA] Fonction Clic sur un objet de type button
    Par Katsuhiko dans le forum C#
    Réponses: 0
    Dernier message: 14/04/2011, 17h11
  2. Réponses: 13
    Dernier message: 04/05/2009, 00h43
  3. comment lancer un clic sur un objet ?
    Par lestat22 dans le forum Flex
    Réponses: 3
    Dernier message: 27/03/2008, 14h52
  4. itération sur des objets de types différents ?
    Par jc63 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/09/2007, 08h19
  5. Réponses: 5
    Dernier message: 13/07/2005, 10h03

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