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 de l'appel de la fonction Draw
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);
A ce moment là, je vois bien texture et la forme se superpose parfaitement à la texture (avec debugView).
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);
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
Partager