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 :

Picking RTS C#


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 24
    Par défaut Picking RTS C#
    Bonjour,

    Je programme, depuis quelques mois, un rts en 3D ,et je lutte énormément avec le picking, j'ai lu nombre tutoriels et cours sur le picking en c++ et c#, et je pense avoir assimilé le principe d'où mon problème.

    Je m'explique, je voudrais savoir s'il existe une méthode (ou une suite) qui me permettrais de récupérer les coordonnées d'impact du vecteur "lancer" de la caméra sur le mesh?. Car avec ces coordonnées il me serait facile de trouver le mesh correspondant.

    Voici comment fonctionne le chargement et l'affichage de mes meshs:
    2 listes :
    -stockage des meshs du jeu.
    -liste des meshs à afficher avec id du mesh correspondant.

    La recherche d'un mesh grâce à sa position ce fait simplement avec une méthode de recherche dans la liste 2.

    Je ne sais pas si j'ai été assez clair en gros si le joueur clic la méthode me retourne la position x y (et z même sinon nécessaire) dès qu'elle intercepte qu'elquechose le sol ou un mesh. Est-ce possible si oui comment?

    J'espère avoir été assez clair dans mes propos merci d'avance
    Cordialement
    Derbois Corentin

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    D3DXIntersect
    Determines if a ray intersects with a mesh.

    HRESULT D3DXIntersect(
    LPD3DXBASEMESH pMesh,
    CONST D3DXVECTOR3 * pRayPos,
    CONST D3DXVECTOR3 * pRayDir,
    BOOL * pHit,
    DWORD * pFaceIndex,
    FLOAT * pU,
    FLOAT * pV,
    FLOAT * pDist,
    LPD3DXBUFFER * ppAllHits,
    DWORD * pCountOfHits
    );

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 108
    Par défaut
    Pour le Picking tu peux étudier le Code du Sample Pick de DirectX.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 24
    Par défaut
    Merci de vos réponses, j'avais déjà feuilleté ce sample du sdk mais cela ne correspondait pas à mes attentes.
    Est ce qu'il est possible grâce aux HRESULT de D3DXIntersect de récupérer la position de la collision?

    merci d'avance.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 108
    Par défaut
    Dans le Sample Pick de DirectX il y a la réponse!

    Dans le SDK DirectX 9.0 Sample Pick pour C++.

    Je vais te donner la réponse.

    Dans les fonctions CMyD3DApplication::IntersectTriangle() et D3DXIntersect().

    il y a la variable fDist qui est la Distance entre l'origine du lancer de rayon et le point de collision sur la surface.


    Pour avoir la position xyz de collision tu doit faire:

    l'origine du lancer de rayon + (la direction du lancer de rayon Normalisé * fDist)

    Voila!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 24
    Par défaut
    Effectivement je ne l'avais pas vu comme cela.
    Comme quoi il y as tous dans le sdk.
    Merci

    Cordialement
    Derbois Corentin

Discussions similaires

  1. lecture/ecriture des broches RTS/CTS du port RS232
    Par .:: sly51 ::. dans le forum C
    Réponses: 3
    Dernier message: 24/10/2006, 15h28
  2. QT OpenGL Picking
    Par Teufboy dans le forum OpenGL
    Réponses: 5
    Dernier message: 12/07/2005, 07h49
  3. Signaux CTS et RTS sur dialogue port COM
    Par chourmo dans le forum Composants VCL
    Réponses: 8
    Dernier message: 22/06/2005, 11h45
  4. Besoin d'aide sur le PICKING .
    Par Clad3 dans le forum OpenGL
    Réponses: 5
    Dernier message: 06/06/2005, 15h38
  5. Quelle Bibliothèque pour une IA d'un RTS ?
    Par methos69 dans le forum Bibliothèques
    Réponses: 9
    Dernier message: 11/02/2005, 10h28

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