Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Drag&Drop fenêtre Xna

    28 août 2011 à 18:15:58

    Bonjour tout le monde,
    je développe un jeu avec XNA, et j'ai un petit soucis.
    Je suis arrivé (on m'a aidé :-° ) à enlever le tour de la fenêtre afin que je puisse faire ma propre fenêtre.

    Et je bloque donc sur le Drag&Drop (déplacement de la fenêtre) ,

    je suis arrivé à un résultat mais la souris étant trop rapide la fenêtre "bug", tremble.

    Si vous pouviez m'aider à un résultat correcte, j'en serais ravis.

    Merci d'avance pour vos futures réponses ^^ !
    • Partager sur Facebook
    • Partager sur Twitter
      29 août 2011 à 21:18:12

      Up, c'est vraiment important et je n'ai toujours réussi :euh: .
      • Partager sur Facebook
      • Partager sur Twitter
        30 août 2011 à 12:28:20

        Tu pourrais faire une toute petite classe DragWindow dans laquelle tu testerais la position de la souris (ancienne et nouvelle) ainsi que l'état des boutons, après tu appelle une de ses fonction (du genre Update) depuis ton Update() principal. ça donnerai un truc comme ça :
        public void Update(ref Vector2 winPos)
        {
            MouseState ms = Mouse.GetState();
            Rectangle winTop = new Rectangle(0,0,500,20); //la fenêtre fait 500px * ...px et la hauteur de la barre de titre
        //fait 20px de haut
             Rectangle msRect = new Rectangle((int)ms.X, (int)ms.Y, 16, 16); //le curseur fait 16px*16px ici
             
             if (msRect.Intersect(winTop) && ms.LeftButton == ButtonState.Pressed)
             {
                 winPos = new Vector2(ms.X, ms.Y);
             }
        }
        


        Bien sûr ce code ne fonctionnera peut-être pas (j'ai pas testé) mais il te donne une idée de comment faire. ;)
        En espérant t'avoir aidé.
        • Partager sur Facebook
        • Partager sur Twitter
        "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
          30 août 2011 à 12:37:23

          C'est exactement ce que j'ai fait en un peu plus élaboré quand même. Et la fenêtre clignote/bug/tremble et la souris va trop vite par rapport au déplacement de la fenêtre. Autrement dit je ne pense pas que ça soit possible par XNA, ce n'est tout simplement pas assez rapide.

          J'ai oublié de dire que j'ai accès à la fenêtre par un System.Windows.Forms et donc que j'utilise la Location.X , et Location.Y ;
          • Partager sur Facebook
          • Partager sur Twitter
            30 août 2011 à 12:41:55

            Pour la vitesse tu n'as qu'à utiliser une variables Speed de type float ou Vector2.
            Après pour les clignotements, je ne sais pas trop quoi te dire :honte:
            • Partager sur Facebook
            • Partager sur Twitter
            "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
              30 août 2011 à 13:56:06

              Bah peux être que ça vient du même problème car le clignotement ressemble plus à un échange de position entre l'ancienne et celle actuelle.

              Pour la variable speed , faut que je fasse un truc selon l'espacement de la position de la souris avant et après . Plus il est grand plus ça va vite et inversement ? J'essaierais , Merci ^^.
              • Partager sur Facebook
              • Partager sur Twitter
                30 août 2011 à 14:25:40

                Oui, plus grand -> plus vite, et inversement.
                • Partager sur Facebook
                • Partager sur Twitter
                "Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"

                [C#] Drag&Drop fenêtre Xna

                × 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