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

C# Discussion :

Collision Detection XNA


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut Collision Detection XNA
    Bonjour, je suis actuellement en train de faire un jeu (FPS) en C#, avec l'aide d'XNA, et j'ai un probleme concernant la collision. En effet, le joueur ne doit pas traverser les murs... J'ai donc utilisé des BoundingBoxes pour le mur et le joueur, mais j'ai 2 problèmes :
    Je ne sais pas comment faire pour stopper le joueur lorsque sa BoundingBox rentre en collision avec celle du mur.
    Et j'ai voulu l'adapter à une liste de mur qui apparaissent aléatoirement sur la map, mais cela ne fonctionne pas du tout.

    Si vous voulez du code, dites-le moi .

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    ton joueur est normalement défini par un vecteur direction et un vecteur de déplacement

    A chaque rendu, ton joueur se déplace suivant ce vecteur direction de la quantité lié à la vitesse du joueur

    Si tu rencontres une boundingBox, il faut que tu appliques à la vitesse de ton joueur une valeur null...

    Etre bloqué par un mur veut dire ne pas pouvoir avancer. donc, ne plus avoir un victeur déplacement ou avoir un vecteur déplacement null.

    (rien de plus simple )

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut
    Arf, je pensais pas que ça serait aussi simple, parce qu'en fait après bah le joueur peut plus bouger, mais j'ai mis des conditions, et ça fonctionne, merci !!
    Sinon, pas d'idée pour la liste de mur ? Car il faut appliquer une BBox à chaque mur créé et à mon avis c'est la que ça marche pas... :/
    Mon Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach (Mur m in liste_mur) // pour chaque mur m du type Mur dans la liste liste_mur
    {
                   // taille de la BoundingBox (en Vector3)
          Vector3 min_mur = new Vector3(m.position_mur.X, m.position_mur.Y, m.position_mur.Z);
          Vector3 max_mur = new Vector3(m.position_mur.X + 1.0f, m.position_mur.Y + 1.0f, m.position_mur.Z + 1.0f);
     
          m.bb_mur = new BoundingBox(min_mur, max_mur);
     
    }
    Puis le test de collision

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (liste_mur != null) // si la liste est non-vide
    {
          foreach (Mur m in liste_mur)
          {
              if (bb_joueur.Intersects(m.bb_mur)) // si la BBox du Joueur touche celle du mur m
              {
                // gestion de collision
              }
          }
    }

    EDIT : Et au fait, comment on fait pour afficher une Bounding Box ?

Discussions similaires

  1. commentaire de collision detection
    Par Ema1714 dans le forum Langage
    Réponses: 1
    Dernier message: 21/02/2013, 15h53
  2. Continuous collision detection en rotation
    Par deadalnix dans le forum Physique
    Réponses: 3
    Dernier message: 08/10/2007, 13h54
  3. ALGO detection de collision
    Par tetepoive dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/05/2006, 13h33
  4. Detecter des collisions
    Par jmoati dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 10/04/2005, 16h22

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