Partage
  • Partager sur Facebook
  • Partager sur Twitter

[XNA]Comparaison de Vector2

en vu de déplacement

Sujet résolu
Anonyme
    13 octobre 2011 à 22:59:50

    Bonsoir.

    Je m'attaque à la partie XNA de C#, j'essaie de développer un petit jeu basique (un personnage, un monstre blabla ^^) mais je coince sur une petite partie de "détail"

    Je vais essayer d'être clair :
    J'ai un Humain, un monstre tout deux héritant d'un classe personnage possédant un Sprite.
    Ce Sprite possède donc une position (Vector2), une direction (Vector2), et je voudrais que mon monstre se rapproche de mon Humain selon la position de ce dernier.

    J'ai donc fais ma méthode Update() dans ma classe Monstre, en lui passant un Personnage cible, et testant a chaque tour la position du Personnage et celle du monstre pour le déplacer en conséquence.

    Je trouve que ce n'est pas très joliement fais, et je voulais savoir s'il était plutôt possible de passer directement par un test sur les Vector2 ?

    Merci bien, si vous avez besoin des sources, je les fourniraient ^^
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      14 octobre 2011 à 2:12:03

      Vérifie si la distance entre la position de ton perso et celle de ta cible est inférieure à la vitesse de ton perso. Si c'est le cas ton perso rejoint la cible. Sinon tu fais la différence entre la cible et la position, tu normalises le vecteur, tu le multiplies par la vitesse de ton perso et tu ajoutes ce vecteur (qui correspond au déplacement effectué) à la position de ton perso.

      Si t'utilises des déplacements indépendants du nombre de frame, tu remplaces bien sûr ta vitesse par la vitesse * durée de la frame.

      Genre :
      if (Vector2.Distance(cible, position) <= vitesse)
      {
         position = cible;
      }
      else
      {
         position += Vector2.Normalize(cible - position) * vitesse;
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        14 octobre 2011 à 6:47:35

        Ah super ^^ me manque quelque notion de calcul de vecteur encore ^^' Je vais tester ça ce matin et je te dis.
        Encore merci

        EDIT : J'ai pu tester vite fait (sans réellement faire toute les modif qu'il fallait) ça à l'air exactement ce que je voulais. Je te remercie encore ^^
        • Partager sur Facebook
        • Partager sur Twitter

        [XNA]Comparaison de Vector2

        × 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