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

DirectX Discussion :

Gestion de collision simple.


Sujet :

DirectX

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 67
    Points : 63
    Points
    63
    Par défaut Gestion de collision simple.
    Salut les gars,

    Je suis dans Mesh (un batiment pour etre plus precis).
    Et quand je me deplace je traverse les murs (normal).

    Donc j'ai voulu voir la distance qui me separe du Mesh, alors, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       IntersectInformation I;
       bool b = monMesh.Intersect(MaCameraPosition, new Vector(maCameraPosition.X,0,0), out I);
       if(b)
           Console.WriteLine(I.Dist.Tostring());
    Alors le probleme que j'ai c'est que la distance avec le Mesh semble erroné (exemple j'arrive a 0 bien avant de rencontrer le mur).
    De plus il fonctionne pas en continu, je veux dire par la qu' étant toujours entre les 4 murs. (b = false).

    Sauriez vous si je me trompe du tout au tout, si je suis un gros benet, ou si j'ai fait une erreur.

    en vous remerKiant

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Allez, copié-collé de l'autre forum où tu as posté (après tout faut bien que ça serve de multiposter partout) :

    new Vector(maCameraPosition.X,0,0)
    Ici ça devrait être un vecteur normalisé représentant la direction de déplacement de la caméra. Ca ne semble pas le cas.

  3. #3
    Membre actif Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Points : 296
    Points
    296
    Par défaut
    tien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ''' <param name="RayPos">Position de la camera ou d'un objet</param>
    ''' <param name="RayDir">Direction du déplacement</param>
    ''' <param name="Distance">distance minimum de la collision (exemple la bounding sphere)</param>
    ''' <returns>True en cas de collision</returns>
     
    Public Function Intersect(ByVal RayPos As Vector3, ByVal RayDir As Vector3, ByVal Distance As Single) As Boolean
    Dim matrix1 As Matrix = MatWorld 'Matrice world de ton mesh
    matrix1.Invert()
    Dim RayPosLocal As Vector3 = Vector3.TransformCoordinate(RayPos, matrix1)
    Dim close_hit As IntersectInformation
    Dim Collide As Boolean = Mesh.Intersect(RayPosLocal, RayDir, close_hit)
     
    If (Collide = True) And (close_hit.Dist < Distance) Then Return True
    End Function
    à toi de trouver la direction du déplacement

Discussions similaires

  1. [FLASH MX2004] Gestion de collisions pour plateformes
    Par sourivore dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 10/05/2006, 13h08
  2. Importer avec Ogre / Gestion des collisions
    Par alex6891 dans le forum Ogre
    Réponses: 9
    Dernier message: 19/02/2006, 17h43
  3. gestion de collisions delphi2005
    Par NotANumber dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2005, 20h01
  4. Gestion de collision et OpenGL
    Par kanux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 08/01/2005, 21h07
  5. Gestion des collisions - terrains
    Par Dranor dans le forum DirectX
    Réponses: 1
    Dernier message: 26/06/2003, 18h50

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