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

XNA/Monogame Discussion :

[C#/XNA] Farseer -> Sélection d'object


Sujet :

XNA/Monogame

  1. #1
    Membre habitué
    Homme Profil pro
    Mickaël
    Inscrit en
    Mai 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Mickaël
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2003
    Messages : 106
    Points : 133
    Points
    133
    Par défaut [C#/XNA] Farseer -> Sélection d'object
    Bonjour,
    Je rencontre un problème sur la sélection d'objet avec la souris et le moteur Farseer.
    La sélection de l'objet ne fonctionne que si je clique en haut à gauche de celui-ci, comme ci il y avait un décalage entre la texture affichée et la forme.

    Création du body + fixture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    this.Body = BodyFactory.CreateBody(this.world, ConvertUnits.ToSimUnits( this.Position) );
    this.Body.BodyType = BodyType.Static;
    FixtureFactory.AttachCircle( ConvertUnits.ToSimUnits( this.Texture.Width * .5f), 1, this.Body);
    this.Origin = new Vector2(this.Texture.Width/2f, this.texture.Height /2f);
    Code de l'appel de la fonction Draw
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    spriteBatch.Draw(this.Texture, ConvertUnits.ToDisplayUnits(this.Body.Position), null, Color.White, this.Body.Rotation,  this.Origin, 1f, SpriteEffects.None, 0);
    A ce moment là, je vois bien texture et la forme se superpose parfaitement à la texture (avec debugView).
    Or pour que mon object soit détecté comme étant sous le curseur, je dois cliquer légèrement en haut à gauche de la texture



    Ci-dessous le code permettant de récupérer la position du curseur et trouver l'object :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Vector2 position = Camera.ConvertScreenToWorld(input.Cursor);
    if (  input.IsNewMouseButtonPress(MouseButtons.LeftButton))
    {                                  
      Fixture savedFixture = World.TestPoint(position); 
      ...
    }

    merci de votre aide
    Nova Music Player, lecteur de musique pour win10
    http://novamusic.fpc-france.com

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Ne serais-ce pas à cause du *.5 ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FixtureFactory.AttachCircle( ConvertUnits.ToSimUnits( this.Texture.Width * .5f), 1, this.Body);
    ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre habitué
    Homme Profil pro
    Mickaël
    Inscrit en
    Mai 2003
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Mickaël
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2003
    Messages : 106
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Le paramètre attendu est le rayon du cercle, c'est pour cela que je ne prends que la moitié de la taille de la texture.
    Nova Music Player, lecteur de musique pour win10
    http://novamusic.fpc-france.com

Discussions similaires

  1. Jeux xna-farseer / xaml
    Par Nicos6414 dans le forum Windows Phone
    Réponses: 7
    Dernier message: 12/11/2013, 14h08
  2. [XNA] Problème de sélection d'objet en 3D
    Par DotNET74 dans le forum Windows Phone
    Réponses: 0
    Dernier message: 04/11/2011, 12h10
  3. [C#/XNA] [Farseer] CreatePolygonGeom
    Par ApheX2 dans le forum Physique
    Réponses: 1
    Dernier message: 01/07/2010, 14h11
  4. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 17h56

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